java - 如何使用正则表达式替换字符串中的最后一个点?

标签 java regex string

我正在尝试使用正则表达式替换字符串中的最后一个点。

假设我有以下字符串:

String string = "hello.world.how.are.you!";

我想用感叹号替换最后一个点,结果是:

"hello.world.how.are!you!"

我已经尝试过使用 String.replaceAll(String, String) 方法的各种表达式,但没有成功。

最佳答案

一种方法是:

string = string.replaceAll("^(.*)\\.(.*)$","$1!$2");

或者,您可以使用负前瞻作为:

string = string.replaceAll("\\.(?!.*\\.)","!");

Regex in Action

关于java - 如何使用正则表达式替换字符串中的最后一个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4094024/

相关文章:

java - Android 的 FusedLocationApi 不会激活 GPS 并返回非常旧的日期

java - 莫基托 : Testing void methods gives InvalidUseOfMatchersException

java - 如何在 Android Studio 中初始化处理程序?

java - 匹配此字符串模式的正则表达式

Mysql Regexp 搜索包含特定单词的记录

regex - Perl中正则表达式中的&号有什么用

python - 检测所有未用花括号括起来的模板表达式

string - 移动到缓冲区内字符串的末尾 - 汇编语言

C#/.NET 字符串魔术从文本文件输入中删除注释行?

python - Python 中的自定义排序复杂字符串