可能重复:
Regular expression to only allow whole numbers and commas in a string
我需要一个正则表达式来匹配用逗号分隔的POSITIVE整数序列。空间也是允许的。
例如
706101
,700102
,700295
应该匹配,但0, 1, 2, 3
不应该匹配。
我尝试使用/^\s*(\d+(\s*,\s*\d+)*)?\s*$/
,但它似乎也接受了零。
答案 0 :(得分:3)
将(\d+)
替换为[1-9]\d*
,它会起作用。例如:
/^\s*[1-9]\d*(?:\s*,\s*[1-9]\d*)*$/
这个正则表达式将在空字符串中失败(而原始帖子中的那个将不会),但我认为它实际上是意图。如果没有,只需将第一个“数字部分”设为可选。
答案 1 :(得分:0)
尝试:
[1-9][0-9]+( *, *[1-9][0-9]+)*
答案 2 :(得分:0)
这样的事情会起作用。主要变化基本上是从\d
([0-9])切换到[1-9]
。
此正则表达式还允许您键入0001
等数字。
/^(?:0*[1-9]\d*\s*(?:,|$)\s*)+$/gm
由于您没有指定语言,标志可能会更改。这是PCRE。
答案 3 :(得分:0)
试试这个
^([1-9]\d*[\s,]*)+$
此RE将完全消除字符串中任何位置的独立“0”的字符串。