使用 Pattern.LITERAL 与 Pattern.quote 的含义相同吗?

2024-04-26

更准确地说:做

Pattern.compile(s, x | Pattern.LITERAL)

and

Pattern.compile(Pattern.quote(s), x)

为任何字符串创建等效的正则表达式s和任何其他标志x?

如果没有,如何模拟Pattern.LITERAL?


简短的回答:对于你的例子,是的。

长答案:是的,但是 Pattern.quote 更灵活。如果你只想some你引用的模式?喜欢:

Pattern.compile(Pattern.quote(s) + "+", x)

通过设置 Pattern.LITERAL 标志,甚至+字符现在将按字面意思处理。

如果您不相信该文档,也许可以查看在 Google 代码中搜索Pattern.compile会有帮助的。

通过查看源代码我可以得出以下结论:

  • 如果LITERAL标志是not设置后,无论所有其他标志如何,它都会查找任何 \Q...\E 引用的块并手动转义特殊字符,正如人们所期望的那样。

  • 如果设置了 LITERAL 标志,它将使用方法,并且至少有特殊情况CASE_INSENSITIVE旗帜和UNICODE_CASE flag

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pattern.LITERAL 与 Pattern.quote 的含义相同吗? 的相关文章

随机推荐