我一直在和别人的代码一起工作,我遇到了正则表达式[^0-9a-z-A-Z].这与[^0-9a-zA-Z]用于排除非字母数字字符的常见内容非常相似,但请注意中间的额外短划线,小写字母z和大写字母之间A.
我对正则表达式不太熟悉,但我现在已经阅读了几个页面,而且我看到的规则似乎都没有涵盖这种语法的含义.也许它甚至不是有效的语法,但Golang正则表达式解释器似乎并不介意.我很感激任何澄清.谢谢.
Boa*_*ann 52
在无法将其解释为范围的位置中的字符类中的破折号被解释为文字破折号.因此,表达式将字符排除为0to 9,ato z,Ato Z和-.这就是没有语法错误的原因.
这可能是一个错字.如果破折号应该在那里,那么为了防止混淆,它应该从范围之间转义和/或移出,例如[^0-9a-zA-Z\-]