Java replaceAll - regex变量未被替换

时间:2015-04-16 12:16:49

标签: java

我有一个代表正则表达式的变量,当运行replaceAll时,没有任何字符串被替换。请帮忙看看。

String s = "Issue 3 for 5 describe the title";
String regex = "Issue\\s\\d+\\sfor\\s\\d+";
System.out.println(s.replaceAll(regex, "test"));

3 个答案:

答案 0 :(得分:0)

replaceAll会返回修改后的String,但它不会修改原始String,因为Java中的String是不可变的。

你需要:

String resultString = s.replaceAll(regex, "test")
System.out.println(resultString);

答案 1 :(得分:0)

Java String是不可变的。 如果您想更改字符串s,请使用以下命令:

s = s.replaceAll(regex, "test"));

答案 2 :(得分:0)

这可能是因为在您的代码中您必须双重逃避正则表达式,但在xml中您不会:

String regex = "Issue\\s\\d+\\sfor\\s\\d+";

等同于解析的

<regex>Issue\s\d+\sfor\s\d+</regex>