1

我的字符串很大,当我在循环中读取每个字符串时它会不断变化。它可以包含任何字符,如 " 、 / 、 \ . $ 、? 、 [ 、 & 、 . 、 ' 、 ) 、 % 、 ^ 、 + 、 * 等。我想转义所有可能导致正则表达式失败的字符在Java中的这个字符串上。Javascript在其中一个帖子中有类似的东西,就像这样 -

return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");

Java有类似的东西吗?我不确定要转义的字符集应该是什么。像 str.replaceAll("[^\u0000-\u00ff]+", " ") 这样的东西会这样做吗?(但如果我用空格替换所有数据,我会在这里丢失数据,我想避免这种情况)

4

1 回答 1

5

用这个:

String myEscapedString = Pattern.quote(myRawString);
于 2013-07-28T23:15:57.707 回答