适用于带有逗号和连字符的数字的正则表达式

时间:2019-05-10 10:38:33

标签: php regex preg-match

我有一个文件名,我需要在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] $

但是两者似乎都失败了。有人可以帮我指出正确的方向

1 个答案:

答案 0 :(得分:4)

您想将逗号作为单独的匹配项进行匹配,但是将其添加到字符类[0-9,-]中,它也可以匹配数字或-

要以更特定的方式匹配该格式,可以将此模式与量词{2}配合使用,以重复匹配数字并在预期位置匹配逗号和连字符。

^[0-9]{2},[0-9]{2}-[0-9]{2},[0-9]{2}$

Regex demo

如果您希望匹配以可选的连字符开头,则可以以^-?

开头