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);

word1 ="word2"文字列組み合わせcontを含む多くの文字を含む文字列です。

4

5 に答える 5

1

文字列 (") 内に単語境界 \b があり、正規表現で単語境界を使用しています。たとえば、最後の \b を削除します。

于 2012-03-12T13:51:30.423 に答える
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 に答える
0

必要な唯一の単語境界は前面にあります。残りの一致には、すでに単語境界が組み込まれています(引用符など)。

これは機能します:

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