这个正则表达式的含义是什么?
['`?!\"-/]
为什么它与括号匹配?
我使用Java进行开发
答案 0 :(得分:2)
在你的正则表达式
['`?!\"-/]
数量"-/
被解释为值的范围,就像A-Z
意味着取A
和Z
之间的每个字母一样。结果是reading the basic ASCII table,括号位于此范围内,因此您的模式包含它们。
您可以在这里使用破折号的一个技巧是将它放在结束:
['`?!\"/-]
^^^^ this will not be interpreted as a range
答案 1 :(得分:1)
因为你没有逃过破折号-
。短划线在字符类[]
内表示一系列字符。在这种情况下,从"
到/
。括号在ASCII之间。
如果要将字符串匹配为字面值,则需要对其进行转义\-
,如果它不是字符类中的第一个或最后一个字符。
答案 2 :(得分:0)
你必须使用以下内容
你需要逃避 - 否则,括号是匹配的。
似乎"-/
也包括括号。与[A-C]类似,它匹配A到C之间的ASCII字符
[\'`?!\"\-/]
它将匹配字符串中的后续字符。
'`?"-/
签入regex101