我有一个文件名,我需要在PHP中使用preg_match进行验证,但是我对正则表达式模式了解不多,以解决我的问题。
我要验证的字符串是 2个数字(0-9),一个逗号,2个数字(0-9),一个连字符,2个数字(0-9),一个逗号,2个数字(0-9)
一个例子是47,60-51,00
我尝试了以下
(-)?[0-9] +((,|-)[0-9] +)*
和
^ [0-9] [0-9,-] -[0-9,-] [0-9] $
但是两者似乎都失败了。有人可以帮我指出正确的方向
答案 0 :(得分:4)
您想将逗号作为单独的匹配项进行匹配,但是将其添加到字符类[0-9,-]
中,它也可以匹配数字或-
要以更特定的方式匹配该格式,可以将此模式与量词{2}
配合使用,以重复匹配数字并在预期位置匹配逗号和连字符。
^[0-9]{2},[0-9]{2}-[0-9]{2},[0-9]{2}$
如果您希望匹配以可选的连字符开头,则可以以^-?