1

如何替换以下字符串组合:
word1="word2"
使用以下字符串组合:
word1="word3"

使用单词边界 \b

我使用了以下,但没有工作:

String word2 = "word2";
String word3 = "word3";
String oldLine = "word1=\"" + word2 + "\"";
String newLine = "word1=\"" + word3 + "\"";
String lineToReplace = "\\b" + oldLine + "\\b";
String changedCont = cont.replaceAll(lineToReplace, newLine);

哪里cont是一个包含很多字符的字符串,包括word1="word2" 字符串组合。

4

5 回答 5

1

删除最后一个\b. 它不会像你想的那样做,"不是一个字字符。

于 2012-03-12T13:20:26.163 回答
1
String input = "alma word1=\"word2\"";
String replacement = "word1=\"word3\"";
String output = input.replaceAll("\\bword1=\\\"word2\\\"", replaceMent);
于 2012-03-12T13:21:32.480 回答
1

如果你用lineToReplace这个替换你的行:

String lineToReplace = "\\b" + oldLine + "(?!\\w)";

它应该按照你想要的方式工作。

于 2012-03-12T13:34:36.123 回答
1

您的字符串(“)中有单词边界 \b ,并且您在 regexp 中使用了单词边界。例如,删除最后一个 \b 。

于 2012-03-12T13:51:30.423 回答
0

您唯一需要的单词边界是在前面 - 匹配的其余部分已经内置了单词边界(引号等)。

这将起作用:

 cont.replaceAll("\\bword1=\"word2\"", "word1=\"word3\"");
于 2012-03-12T13:24:23.713 回答