我的字符串很大,当我循环读取每个字符串时,它会不断变化。它可以包含任何字符,例如 ",/,\. $ ,? , [ , & , . , ' , ) , % , ^ , + , * 等。我想转义所有可能导致正则表达式失败的字符在 Java 中的这个字符串上。Javascript 在其中一篇帖子中有类似的东西,它是这样的 -
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
Java 有类似的东西吗?我不确定要转义的字符集应该是什么。像 str.replaceAll("[^\u0000-\u00ff]+", "") 这样的东西会那样做吗? (但是如果我用空格替换所有数据,我会在这里丢失数据,我想避免这种情况)
最佳答案
使用这个:
String myEscapedString = Pattern.quote(myRawString);
关于Java替换正则表达式的所有无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913924/