这个正则表达式的含义是什么? [''\“ - ?!/]

时间:2017-11-16 06:18:56

标签: regex

这个正则表达式的含义是什么?

    ['`?!\"-/]

为什么它与括号匹配?

我使用Java进行开发

3 个答案:

答案 0 :(得分:2)

在你的正则表达式

['`?!\"-/]

数量"-/被解释为值的范围,就像A-Z意味着取AZ之间的每个字母一样。结果是reading the basic ASCII table,括号位于此范围内,因此您的模式包含它们。

您可以在这里使用破折号的一个技巧是将它放在结束

['`?!\"/-]
        ^^^^ this will not be interpreted as a range

答案 1 :(得分:1)

因为你没有逃过破折号-。短划线在字符类[]内表示一系列字符。在这种情况下,从"/。括号在ASCII之间。

如果要将字符串匹配为字面值,则需要对其进行转义\-,如果它不是字符类中的第一个或最后一个字符。

答案 2 :(得分:0)

你必须使用以下内容 你需要逃避 - 否则,括号是匹配的。 似乎"-/也包括括号。与[A-C]类似,它匹配A到C之间的ASCII字符

[\'`?!\"\-/]

它将匹配字符串中的后续字符。

'`?"-/

签入regex101