具有6个字符限制的可选逗号的正则表达式

时间:2012-03-23 14:53:13

标签: regex

我需要一个允许数字和可选逗号的正则表达式,但整个长度不能大于6。

^[0-9]+([,]*[0-9]+)*$允许使用数字和可选的逗号。

^([0-9]+([,]*[0-9]+)*){0,6}$不会将总长度限制为6。

3 个答案:

答案 0 :(得分:3)

如果你的正则表达式引擎支持前瞻断言 - 大部分做 - 那么你可以写:

^(?=[0-9,]{1,6}$)[0-9]+(,[0-9]+)*$

(?=[0-9,]{1,6}$)部分是“积极前瞻断言”,意思是“从字符串中的这一点向前看,我看到[0-9,]{1,6}$”。所以,实质上,上述正则表达式是这两者的组合:

^[0-9,]{1,6}$
^[0-9]+(,[0-9]+)*$

并强制执行它们。

(也就是说,如果你只是将长度限制强制作为一个单独的步骤,而不是将上述内容整合到一个正则表达式中,那么可能会更清楚。)

答案 1 :(得分:0)

^([\,0-9]{0,6})$

这个正则表达式只允许任何字符(逗号,从零到九)零到六次。

如果您要求输入以数字开头,请使用:

^([0-9]{1}[\,0-9]{0,5})$

答案 2 :(得分:0)

其他一些方法 -

^(?=.{1,6}$)\d+(?:,?\d)*$

^(?=.{1,6}$)\d(?:[,\d]*\d)?$