1

我正在尝试编写一个正则表达式,以确保如果有逗号,那么以下文本应该是 1 位或 2 位数字。

这是我到目前为止所拥有的。

(^\d{0,2})+(,\d{0,2})*$

在大多数情况下有效,但它认为以下内容是有效的。

12,22,,,,,,,,,, and 12,22,,,,,,,,,,12,12

我做错了什么?谢谢!

4

3 回答 3

6

\d{0,2}表示“介于 0 和 2 位之间”。它应该是\d{1,2}

于 2013-04-22T21:27:10.073 回答
4

您在逗号后匹配 0 到 2 位数字而不是 1 或 2 以下应该可以解决问题

(^\d{1,2})+(,\d{1,2})*$
于 2013-04-22T21:30:48.383 回答
3

使用否定前瞻断言逗号后没有 3 位数字,并保持主正则表达式简单地“所有逗号或数字”

^(?!.*,\d{3})[,\d]+$
于 2013-04-22T21:26:42.717 回答