我一直在使用其他人的代码,并且遇到了正则表达式[^0-9a-z-A-Z]。这与[^0-9a-zA-Z]用于排除非字母数字字符的 common 非常相似,但请注意中间的额外破折号,在小写z和大写之间A。我对正则表达式不是很熟悉,但我现在已经阅读了几页关于它们的内容,而且我所看到的规则似乎都没有涵盖这种语法的含义。也许它甚至不是有效的语法,但 Golang 正则表达式解释器似乎并不介意。我很感激任何澄清。谢谢。
2 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
字符类中不能解释为范围的地方的破折号被解释为文字破折号。因此该表达式不包括字符0
to 9
、a
to z
、A
toZ
和-
。这就是为什么没有语法错误的原因。
不过,这可能是一个错字。如果破折号应该在那里,那么为了防止混淆,它应该被转义和/或从范围之间移出,例如[^0-9a-zA-Z\-]
- 2 回答
- 0 关注
- 373 浏览
添加回答
举报
0/150
提交
取消