如标题中所述,这是示例输入
我会有这样的输入
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/