Java正则表达式replaceAll替换精确值

标签 java regex

如标题中所述,这是示例输入

我会有这样的输入

String str = "test_String test_String#ID\ntest_String#ID test_String";

然后我用这个代码来替换上面的代码

regex = "test_String";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(Example1);
str = m.replaceAll("abc");

我得到的输出将变成 “abc#ID abc”

我想要的输出是“test_String#ID abc”

最佳答案

您可以使用这个基于环视的正则表达式:

regex = "(?m)(?<=\\s|^)test_String(?=\\s|$)";

这意味着仅当 test_String 被空格或行开头/结尾包围时才匹配。

代码:

String str = "test_String test_String#ID\ntest_String#ID test_String";
String repl = str.replaceAll("(?m)(?<=\\s|^)test_String(?=\\s|$)", "abc");

输出:

abc test_String#ID
test_String#ID abc

关于Java正则表达式replaceAll替换精确值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34585774/

相关文章:

排除特定字符的正则表达式

php - 这段代码的 php 等价物是什么?

java - SAX XML 解析器 - 本地化错误消息

java - 抛出异常时不支持请求方法 'POST'

java - 自定义 ArrayAdapter 中未出现字体

regex - 如何使用 Notepad++/RegEx 或其他从主机生成 Nagios 主机组列表

python - 将 Python 正则表达式用于 Twitter 数据

ruby - 正则表达式任何非数字有异常(exception)

java - 带有 maven 和无法解析的构建扩展的 Android : Plugin com. jayway.maven.plugins.android.generation2 :android-maven-plugin:3. 9.0-rc.3

java - Netty 应用程序随时间停止工作