Java替换正则表达式的所有无效字符

标签 java regex

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

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

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

最佳答案

使用这个:

String myEscapedString = Pattern.quote(myRawString);

关于Java替换正则表达式的所有无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913924/

相关文章:

java - spring boot 外部属性文件更新

java - Swing JTable 黑客

java - 在 Java 中是否有更优雅的处理列表的方法? (Python 与 Java)

regex - 如何使用正则表达式分隔双引号字符串和非双引号字符串?

java - 需要对多个日志文件进行过滤、解析和排序

java - 是否可以通过仅替换单个类文件来更新 Java Web 应用程序?

java - 使用 Java 配置在 Spring 中重定向 404 错误

Javascript - 无法替换字符串中的 "<"单词

javascript - 如何在 JavaScript 正则表达式中用 (n-1) 次出现的相同字符替换 (n) 次出现的字符

python - HTML 标签中内容的正则表达式模式