【发布时间】:2021-10-03 02:47:55
【问题描述】:
考虑数组:
new Pattern[] {Pattern.compile("\\["),Pattern.compile("\\]") };
Intellij IDEA 告诉我 \\ 是多余的,并告诉我用 ] 替换它,例如结果是:
new Pattern[] {Pattern.compile("\\["),Pattern.compile("]") };
为什么第一个Pattern.compile("\\[") 是\\ OK,但第二个是多余的?
【问题讨论】:
-
正则表达式引擎将
[视为字符类的开头,因此如果您指的是文字[字符,则需要转义。除非您正在定义字符类,否则它可能不会将]读取为字符类的结尾,因此在这种情况下不需要转义。 -
如果任一答案解决了您的问题,请考虑接受最能解决您问题的答案。
标签: java regex intellij-idea