使用String的ReplaceAll与正则表达式

时间:2012-03-12 13:15:21

标签: java regex string replaceall

如何修复以下字符串组合:
WORD1 = “单词2”
使用以下字符串组合:
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” 字符串组合。

5 个答案:

答案 0 :(得分:1)

删除最后一个\b。它不会按你的想法行事,"不是单词字符。

答案 1 :(得分:1)

String input = "alma word1=\"word2\"";
String replacement = "word1=\"word3\"";
String output = input.replaceAll("\\bword1=\\\"word2\\\"", replaceMent);

答案 2 :(得分:1)

如果您用此替换lineToReplace行:

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

这将有效:

 cont.replaceAll("\\bword1=\"word2\"", "word1=\"word3\"");