我正在寻找一种方法来仅替换完整的标记,而不是标记的子字符串,例如:
String test = "a | ab & c | a";
现在我想用其他任何东西替换“a”,但这应该只替换“a”,而不是“ab”。
test.replace("a", "1"); //would result: "1 | 1b & c | 1"
如何只替换“完整单词”?
顺便说一句,特殊字符“|”之间的token的替换或“&”来自:
\\s*[|&][|&\\s]*
这是我用来分隔它们的正则表达式。也许我可以再次使用这个正则表达式来替换??
最佳答案
您可以使用带有单词边界 (\b
) 的正则表达式,它只会替换“孤立的”a
s:
test.replaceAll("\\ba\\b", "1");
例子:
String test = "a | ab & c | a";
System.out.println(test.replaceAll("\\ba\\b", "1"));
打印1 | AB & C | 1
。
关于java - 如何只替换标记,没有子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15816800/