Regex 对于少于3个字符的字符串,正则表达式失败

Regex 对于少于3个字符的字符串,正则表达式失败,regex,Regex,我使用正则表达式来测试字符串是否有效。字符串必须以数字([0-9])开头和结尾,但可以包含逗号 我提出了这个示例,但对于少于3个字符的字符串(例如1或15与1,8一样有效),它将失败。这大概是因为我专门测试了第一个和最后一个角色,但我不知道还有其他方法可以做到这一点 如何更改此正则表达式以符合我的要求。谢谢 ^[0-9]+[0-9\,]+[0-9]$ 我会说正则表达式 \d(,?\d)* 应满足只能用一个逗号分隔的一个或多个数字。注意,1,2失败了我认为正则表达式 \d(,?\d)* 应满

我使用正则表达式来测试字符串是否有效。字符串必须以数字([0-9])开头和结尾,但可以包含逗号

我提出了这个示例,但对于少于3个字符的字符串(例如
1
15
1,8
一样有效),它将失败。这大概是因为我专门测试了第一个和最后一个角色,但我不知道还有其他方法可以做到这一点

如何更改此正则表达式以符合我的要求。谢谢

^[0-9]+[0-9\,]+[0-9]$
我会说正则表达式

\d(,?\d)*
应满足只能用一个逗号分隔的一个或多个数字。注意,1,2失败了

我认为正则表达式

\d(,?\d)*
应满足只能用一个逗号分隔的一个或多个数字。注意,1、2出现故障,请使用以下方法:

^[0-9]+(,[0-9])?$
,[0-9]
部分是可选的

可视化:

如果要允许多个逗号数字组。。。然后将
替换为
*

如果您希望在逗号后允许数字组(在您的示例中似乎不是这样),那么您也应该在该数字组后放置
+

如果上述两项都是需要的,那么您的最终正则表达式可以如下所示:

^[0-9]+(,[0-9]+)*$

使用以下方法:

^[0-9]+(,[0-9])?$
,[0-9]
部分是可选的

可视化:

如果要允许多个逗号数字组。。。然后将
替换为
*

如果您希望在逗号后允许数字组(在您的示例中似乎不是这样),那么您也应该在该数字组后放置
+

如果上述两项都是需要的,那么您的最终正则表达式可以如下所示:

^[0-9]+(,[0-9]+)*$

应该有用

始终在开始处有一个或多个数字,可以选择后跟任意数量的逗号分隔的一个或多个数字的其他组

如果允许逗号相邻,那么我认为第二个+应该是a*

应该有用

始终在开始处有一个或多个数字,可以选择后跟任意数量的逗号分隔的一个或多个数字的其他组


如果允许逗号相邻,那么我认为第二个+应该是*。

^(?)[0-9,]*[0-9]$
您使用的是Javascript正则表达式吗?
^(?)[0-9,]*[0-9]$
您使用的是Javascript正则表达式吗?1923129888失败。从OP获得确切的要求可能很好,但到目前为止,它只是以一个带逗号的数字开头和结尾。谢谢,但它在
1,2,3
@DavidGard上失败,如果您考虑到将
替换为
*
的注释,则这是不正确的。当我最初阅读您的问题时,我并没有将其视为一个用例。1923129888失败。从OP获得确切的要求可能很好,但到目前为止,它只是以一个带逗号的数字开头和结尾。谢谢,但它在
1,2,3
@DavidGard上失败,如果您考虑到将
替换为
*
的注释,则这是不正确的。当我最初阅读您的问题时,我没有将其视为用例。