带有逗号和连字符的数字的特定正则表达式

Specific Regex for nubmers with commas and hyphens

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

但两者似乎都以某种方式失败了。有人能帮我指明正确的方向吗

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

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

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

Regex demo

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

开头模式