我正在使用RegEx来测试字符串是否有效。字符串必须以数字([0-9])开头和结尾,但可以包含逗号。
我提出了这个示例,但是对于少于3个字符的字符串(例如1
或15
与1,8
一样有效),它失败了。据推测,这是因为我专门测试了第一个和最后一个角色,但我不知道其他任何方式。
如何更改此RegEx以符合我的要求。感谢。
^[0-9]+[0-9\,]+[0-9]$
答案 0 :(得分:3)
使用此:
^[0-9]+(,[0-9])?$
,[0-9]
部分将是可选的
可视化:
如果您想要允许多个逗号组...则将?
替换为*
。
如果你想在逗号之后允许数字组(在你的例子中似乎不是这种情况),那么你也应该把+
放在那个数字组之后。
如果需要上述两种方法,您的最终正则表达式可能如下所示:
^[0-9]+(,[0-9]+)*$
答案 1 :(得分:1)
^\d+(?:,\d+)*$
应该有用。
始终在开头有一个或多个数字,可选地后跟任意数量的逗号分隔的一个或多个数字的其他组。
如果你允许逗号彼此相邻,那么第二个+应该是*,我认为。
答案 2 :(得分:0)
我会说正则表达式
\d(,?\d)*
应满足一个或多个数字,只能用一个逗号分隔。注意,1,2失败