我是“REGEX”的新手。这个问题是java中正则表达式的培训和教育。
我尝试从字符串中删除前导新行字符。(我知道我们可以通过'trim()'来做到这一点,但我不想使用它。)我使用'^ [\ r \ n] +'作为正则表达式,像这样:
str = "\r\n\r\ntest";
str.replaceAll("^[\r\n]+", "");
System.out.print(str);
我猜结果将是
测试
但结果是:
CRLF
CRLF
test
正如你所看到的,领先的新行字符没有删除。我也尝试'^ \ s'或'^ \ s +'作为正则表达式,但结果是一样的。你知道为什么那些正则表达式与领先的新行不匹配字符?
答案 0 :(得分:4)
无法修改字符串:replaceAll返回更改后的字符串。
str = str.replaceAll(...);