Regex匹配数字,# @ %符号


Regex to match numbers, # @ % signs

我正在尝试编写一个匹配所有数字(0-9)和# @ %符号的正则表达式。

我试过 ^ [0 - 9 # % @) $ ,它不起作用。

我希望它匹配,例如:1234345,2323,1,3 @,%@,9,23743,@@@@@,或任何…

一定是少了什么?

谢谢

你几乎是对的…您所缺少的只是告诉正则表达式可能存在不止一次的这些字符,例如*(0或更多)或+(1或更多)。

^[0-9#%@]+$

使用^$分别表示字符串的开始和结束。确保你的字符串只包含这些字符,否则它将不起作用(例如:"数字是89#1"不能工作,因为字符串以0-9(#、%或@)以外的东西开头。

模式^[0-9#%@]$只匹配一个字符长的字符串。[]结构匹配单个字符,^和$锚点表示在[]匹配的字符之前或之后不能出现任何内容。

如果您只是想知道字符串中是否有这些字符之一,那么[0-9#%@]将执行此操作。如果要匹配必须至少包含一个字符的字符串,则使用^[0-9#%@]+$。"+"表示匹配前面的一个或多个项。如果还想匹配空字符串,则使用[0-9#%@]*。"*"表示匹配前一项中的零个或多个

应该是/^[0-9#%@]+$/+是一个限定符,意思是"前面的一个或多个"。

当前regex的问题是它只匹配一个字符,该字符可以是数字或#, %@。这是因为^$字符分别匹配行首和行尾。通过添加+限定符,您表示希望匹配前面的一个或多个字符类,并且整行由指定字符类中的一个或多个字符组成。

删除插入符号(^),它用于从字符串的开头匹配。

你忘了"+"^[0-9#%@]+$必须工作