如何修复以下字符串组合:
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” 字符串组合。
答案 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\"");