如何只更换令牌,没有子串?

时间:2013-04-04 16:34:27

标签: java regex replace

我正在寻找一种方法来替换完整的令牌,而不是替换令牌的子串,例如:

String test = "a | ab & c | a";

现在我想用其他任何东西替换“a”,但这只能取代“a”而不是“ab”。

test.replace("a", "1"); //would result: "1 | 1b & c | 1"

我怎样才能取代“全字”?

顺便说一句,替换特殊字符“|”之间的标记或“&”来自:

\\s*[|&][|&\\s]*

这是我将他们分开的正则表达式。也许我可以再次使用这个正则表达式替换??

2 个答案:

答案 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");怎么样?