Java 与号 (&) 正则表达式



我正在尝试编写一个正则表达式过滤器,它只允许0-9a-zA-Z_-&符号。

到目前为止,我已经有了"^[A-Za-z0-9_-]$",但我不确定如何将&符号作为允许字符的一部分。谢谢

只需在字符类中添加&,并通过在该字符类旁边添加+量词来使该字符类重复一次或多次。

"^[A-Za-z0-9_&-]+$"

则CCD_ 11将被写为CCD_。

"^[\w&-]+$"

如果只允许使用单个字符。则不需要char类之后的+

"^[\w&-]$"

&在正则表达式中没有特殊含义。问题可能是你把它添加到了角色类的末尾,比如:

[A-Za-z0-9_-&]

短划线字符-在字符类中具有特殊含义,当它不是第一个或最后一个时,它是"范围"运算符,因此以_-&结尾可以指定"介于(按unicode顺序)并包括_&之间的所有字符"。

相反,在短划线:之前添加&

[A-Za-z0-9_&-]

当破折号在字符类中是第一个或最后一个时,它只是一个字面上的破折号字符。最后一个版本应该可以使用。

最新更新