我正在尝试验证数字 1-8 的逗号分隔列表。
即2,4,6,8,1
是有效输入。
我试过[0-8,]*
了,但它似乎被1234
认为是有效的。它不需要逗号,它让我输入大于 8 的数字。我不知道为什么。
我正在尝试验证数字 1-8 的逗号分隔列表。
即2,4,6,8,1
是有效输入。
我试过[0-8,]*
了,但它似乎被1234
认为是有效的。它不需要逗号,它让我输入大于 8 的数字。我不知道为什么。
[0-8,]*
将匹配零个或多个连续实例0
through8
或,
, 字符串中的任何位置。你想要更像这样的东西:
^[1-8](,[1-8])*$
^
匹配字符串的开头,并$
匹配结尾,确保您正在检查整个字符串。它将匹配一个数字,加上零个或多个逗号实例,后跟一个数字。
/^\d+(,\d+)*$/
[0-9]+(,[0-9]+)+
一般来说,这对我来说更适合逗号分隔的数字,例如:1,234,933
您可以尝试使用此正则表达式:
^[1-8](,[1-8])+$
如果您正在使用 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')]
您需要一个可以重复的数字+逗号组合:
^[1-8](,[1-8])*$
如果您不想记住括号,请添加?:
到括号中,如下所示:
^[1-8](?:,[1-8])*$