可能重复分离正整数:
Regular expression to only allow whole numbers and commas in a string需要一个正则表达式匹配用逗号
我需要一个正则表达式匹配用逗号隔开的正整数的序列。空间也是允许的。
例如
706101
,700102
,700295
应该匹配,但0, 1, 2, 3
不应该。我试图使用/^\s*(\d+(\s*,\s*\d+)*)?\s*$/
,但它似乎也接受零。
可能重复分离正整数:
Regular expression to only allow whole numbers and commas in a string需要一个正则表达式匹配用逗号
我需要一个正则表达式匹配用逗号隔开的正整数的序列。空间也是允许的。
例如
706101
,700102
,700295
应该匹配,但0, 1, 2, 3
不应该。我试图使用/^\s*(\d+(\s*,\s*\d+)*)?\s*$/
,但它似乎也接受零。
像这样的工作。主要变化是从\d
([0-9])切换到[1-9]
。
这个正则表达式还允许你输入数字,如0001
。
/^(?:0*[1-9]\d*\s*(?:,|$)\s*)+$/gm
由于您没有指定的语言,标志可能会改变。这是PCRE。
建议我用\ [1-9] \ d *替换\ d +,这样我的最终字符串是/^\ s *([1-9] \ d *(\ s *,\ s * [1-9] \ d *)*)?\ S * $ /。该语言是JavaScript。 –
感谢您的演示和解释! –
将(\d+)
替换为[1-9]\d*
它会工作。例如:
/^\s*[1-9]\d*(?:\s*,\s*[1-9]\d*)*$/
此正则表达式将无法在空字符串(而一个在原岗位不会),但我认为它实际上是意图。如果不是,只需将第一个“数字部分”设为可选。
尝试:
[1-9][0-9]+(*, *[1-9][0-9]+)*
逗号后的空格怎么样? –
刚刚更新了...... –
在字符串中的任何地方试试这个
^([1-9]\d*[\s,]*)+$
这RE将与独立的完全elliminate字符串 '0'。
定义“序列”是什么。是否应该有最小和最大数字位数? –
1,2和3都是正数,所以我不认为“正面”是描述你想要做什么的正确词汇。 – Supericy