我一直在处理别人的代码,遇到了正则表达式[^0-9a-z-A-Z]
。这与[^0-9a-zA-Z]
旨在排除非字母数字字符的通用字符非常相似,但请注意中间的小写字母z
和大写字母之间的多余破折号A
。
我对正则表达式不是很熟悉,但是现在我已经阅读了几页正则表达式,而且我所见的任何规则似乎都没有涵盖这种语法的含义。也许它甚至不是有效的语法,但是Golang regex解释器似乎并不介意。我将不胜感激。谢谢。
在字符类中不能将其解释为范围的破折号解释为文字破折号。因此该表达式排除了0
to 9
,a
to z
,A
toZ
和和的字符-
。这就是为什么没有语法错误。
虽然这可能是一个错字。如果应将破折号放在那儿,则为防止混淆,应将其从范围之间逃脱和/或移出,例如[^0-9a-zA-Z\-]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句