java正则表达式匹配变量

时间:2013-05-30 11:17:34

标签: java regex

我在字符串中有一个java变量的名称。我想用字母x替换它。我怎么能做这个java,并确保字符串中的其他单词不被替换?

例如,假设我的变量为res,我的字符串为“res = res + pres + resd + _res。我希望字符串变为x = x + pres + resd + _res

2 个答案:

答案 0 :(得分:1)

您可以使用单词边界仅捕获整个单词:

String s = "res = res + pres + resd + _res";
String var = "res";
System.out.println(s.replaceAll("\\b" + var + "\\b", "x"));

输出x = x + pres + resd + _res

答案 1 :(得分:0)

您可以使用\b元字符来匹配单词边界。 (请记住,你需要使用doule反斜杠来解决这个问题。)

所以你可以做以下的事情:

final String searchVar = "res";
final String replacement = "x";
final String in = "res = res + pres + resd + _res";

final String result = in.replaceAll("\\b" + searchVar + "\\b", replacement);
System.out.println(result);
// prints "x = x + pres + resd + _res"