需要在正则表达式中转义的所有特殊字符的列表

2022-08-31 08:34:51

我正在尝试创建一个应用程序,该应用程序将消息模板与用户尝试发送的消息相匹配。我正在使用Java正则表达式来匹配消息。模板/消息可能包含特殊字符。

我如何获得需要转义的特殊字符的完整列表,以便我的正则表达式在最大可能的情况下工作和匹配?

有没有一个通用的解决方案来转义Java正则表达式中的所有特殊字符?


答案 1
  • 必须在正则表达式中转义的 Java 字符包括:
    \.[]{}()<>*+-=!?^$|
  • 其中两个右括号( 和 ) 只需要在打开相同类型的括号后进行转义。]}
  • 在括号中,某些字符(如 和 )有时确实可以不带转义。[]+-

答案 2

你可以看看 Pattern 类的 javadoc:http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html

如果你想要常规字符而不是特殊含义,你需要转义那里列出的任何字符。

作为一个可能更简单的解决方案,您可以将模板放在 \Q 和 \E 之间 - 它们之间的所有内容都被视为转义。