我正在寻找一种方法来替换完整的令牌,而不是替换令牌的子串,例如:
String test = "a | ab & c | a";
现在我想用其他任何东西替换“a”,但这只能取代“a”而不是“ab”。
test.replace("a", "1"); //would result: "1 | 1b & c | 1"
我怎样才能取代“全字”?
顺便说一句,替换特殊字符“|”之间的标记或“&”来自:
\\s*[|&][|&\\s]*
这是我将他们分开的正则表达式。也许我可以再次使用这个正则表达式替换??
答案 0 :(得分:5)
你可以使用一个带有单词边界(\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
。
答案 1 :(得分:0)
test.replaceFirst("a", "1");
怎么样?