我需要一个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
你能指出我上面的正则表达式有什么问题吗?
该\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)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |