我需要一个允许数字和可选逗号的正则表达式,但整个长度不能大于6。
^[0-9]+([,]*[0-9]+)*$
允许使用数字和可选的逗号。
^([0-9]+([,]*[0-9]+)*){0,6}$
不会将总长度限制为6。
答案 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)?$