Java RegExp下划线

时间:2015-06-04 12:55:54

标签: java regex

我想在给定字符串中替换内容(左右双下划线,请参阅代码),但无法使其工作。所以像这样:

String test = "Hello! This is the content: __content__";
test.replaceAll("__content__", "Yeah!");
System.out.println("Output: " + test);

所以输出应该是:"Output: Hello! This is the content: Yeah!" replaceAll的第一个参数中的正则表达式是错误的,但我不知道正确的表达式。谁知道怎么做?

3 个答案:

答案 0 :(得分:2)

您忘记将replaceAll的返回值分配回原始字符串。 replaceAll(或任何其他字符串方法)不会更改原始字符串:

String test = "Hello! This is the content: __content__";
test = test.replaceAll("__content__", "Yeah!");
System.out.println("Output: " + test);

顺便说一下,你甚至不需要正则表达式,只需使用replace

test = test.replace("__content__", "Yeah!");

答案 1 :(得分:2)

在Java字符串中是不可变的,因此replaceAll不会修改字符串,但会返回一个新字符串。

答案 2 :(得分:1)

应该是:

String test = "Hello! This is the content: __content__";
test = test.replaceAll("__content__", "Yeah!");
System.out.println("Output: " + test);

replaceAll返回结果字符串!