用逗号分隔的整数的正则表达式

Mav*_*ven 4 c# regex

我需要一个Regex只允许用逗号分隔的整数(正数和负数)2,-3,4,但逗号应该只在两个整数的中间,而不是在开头或结尾或两个连续的逗号之类23,34,,4.

目前我有这个:

Regex regex = new Regex(@"^\d{1,10}([,]\d{10})*$");
 if (!regex.IsMatch("123,34,2,34,234"))
Run Code Online (Sandbox Code Playgroud)

但它似乎并不匹配甚至拒绝有效输入的任何东西 123,34,2,34,234

你能指出我上面的正则表达式有什么问题吗?

Wik*_*żew 5

\d{10}子模式只匹配10位块.

你需要允许1到10 {1,10}(或1和更多+)

@"^\d{1,10}(?:,\d{1,10})*$"
Run Code Online (Sandbox Code Playgroud)

要么

@"^\d+(?:,\d+)*$"
Run Code Online (Sandbox Code Playgroud)

请注意使用(?:...)不存储子匹配的非捕获组,并且仅用于对子模式序列进行分组.

请参阅正则表达式演示

编辑:要允许匹配负值,请添加可选项-:

@"^-?\d+(?:,-?\d+)*$"
   ^^       ^^  
Run Code Online (Sandbox Code Playgroud)

另一个正则表达式演示.