我正在尝试验证数字1-8的逗号分隔列表。
即。 2,4,6,8,1
是有效的输入。
我尝试[0-8,]*
但似乎接受1234
有效。它不需要逗号,而是让我输入大于8的数字。我不知道为什么。
答案 0 :(得分:33)
[0-8,]*
会匹配字符串中任意位置的0
到8
或,
的零个或多个连续实例。你想要更像这样的东西:
^[1-8](,[1-8])*$
^
匹配字符串的开头,$
匹配结尾,确保您正在检查整个字符串。它将匹配一个数字,加上零个或多个逗号实例,后跟一个数字。
答案 1 :(得分:3)
{{1}}
答案 2 :(得分:0)
您需要一个可以重复的数字+逗号组合:
^[1-8](,[1-8])*$
如果您不想记住括号,请将?:
添加到parens中,如下所示:
^[1-8](?:,[1-8])*$
答案 3 :(得分:0)
您可以尝试使用此正则表达式:
^[1-8](,[1-8])+$
答案 4 :(得分:0)
如果您正在使用python并希望找出所有可能的匹配字符串,例如 XX,XX,XXX或X,XX,XXX 或12,000,1,20,000使用正则表达式
string = "I spent 1,20,000 on new project "
re.findall(r'(\b[1-8]*(,[0-9]*[0-9])+\b)', string, re.IGNORECASE)
Result will be ---> [('1,20,000', ',000')]
答案 5 :(得分:-1)
[0-9]+(,[0-9]+)+
这对我来说对1,234,933之类的数字更有效