最大长度为16的整数/十进制数的正则表达式是什么?

时间:2015-04-24 04:45:50

标签: regex

最大长度为16的整数/十进制数的正则表达式是什么(包括一个逗号*)?

有效示例

12345689012345,

0,12345678901234

123,123

123456789,012345

1,

无效的例子

,1

,123467890123456

123,,123

1,1,

*逗号作为小数点

我尝试过使用这个[0-9] {1,16},[0-9] {1,16}?

但是,它并没有将数字的总长度限制为16,并且长度为32.

我也试过这个([0-9] +([,] [0-9] +?)?){0,15}

这个问题是它不限制数字,只允许这种格式数字,数字(例如123,123)

1 个答案:

答案 0 :(得分:3)

您可以使用负面预测来消除多个逗号和锚点:

^(?!.*,.*,)(\d[\d,]{0,15})$

^                           ^    anchors
             ^^^^^^^^^^^^^^  start with a digit then digits and comma up to 1+15
   ^^^^^^ UNLESS there is more than one comma

Demo