我正在尝试编写一个正则表达式过滤器,它只允许0-9
、a-z
、A-Z
、_
、-
和&
符号。
到目前为止,我已经有了"^[A-Za-z0-9_-]$"
,但我不确定如何将&
符号作为允许字符的一部分。谢谢
只需在字符类中添加&
,并通过在该字符类旁边添加+
量词来使该字符类重复一次或多次。
"^[A-Za-z0-9_&-]+$"
则CCD_ 11将被写为CCD_。
"^[\w&-]+$"
如果只允许使用单个字符。则不需要char类之后的+
。
"^[\w&-]$"
&
在正则表达式中没有特殊含义。问题可能是你把它添加到了角色类的末尾,比如:
[A-Za-z0-9_-&]
短划线字符-
在字符类中具有特殊含义,当它不是第一个或最后一个时,它是"范围"运算符,因此以_-&
结尾可以指定"介于(按unicode顺序)并包括_
和&
之间的所有字符"。
相反,在短划线:之前添加&
[A-Za-z0-9_&-]
当破折号在字符类中是第一个或最后一个时,它只是一个字面上的破折号字符。最后一个版本应该可以使用。