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

新手上路,请多包涵

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

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

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

原文由 Avinash Nair 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 722
2 个回答

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

如果您想要常规字符而不是特殊含义,则需要转义此处列出的任何字符。

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

原文由 Sorin 发布,翻译遵循 CC BY-SA 4.0 许可协议

  • 必须在正则表达式中转义的 Java 字符是:

\.[]{}()<>*+-=!?^$| - 两个右括号( ]} )只需要在打开相同类型的括号后进行转义。 - 在 [] 的一些字符(如 +- )有时会在没有逃逸的情况下工作。

原文由 Tobi G. 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题