Regex匹配逗号分隔的列表,列表末尾没有逗号
本文关键字:列表 分隔 Regex | 更新日期: 2023-09-27 18:23:56
我需要一个.Net(C#)Regex来匹配逗号分隔的数字列表,如果最后一个字符是逗号,则该列表将不匹配
123,123,123,123 true - correct match
123,123,123,123, false - comma on end
123,123,123,,123 false - double comma
,123,123,123,123 false - comma at start
"" false - empty string
123 true - single value
我找到了这个Regex,但当^([0-9]+,?)+$
末尾有逗号时匹配
什么是Regex模式才能符合这种模式?
编辑:为清晰起见,添加了一个示例—正确答案适用于123
尝试使用以下模式:
^([0-9]+,)*[0-9]+$
你可以在这里测试。
试试这个:
//This regex was provided before the question was edited to say that
//a single number is valid.
^(('d+'s*,'s*)+('s*)('d+))$
//In case a single number is valid
^('d+)('s*)(,'s*'d+)*$
以下是的测试结果
123,123,123,123 match
123,123,123,123, no match
123,123,123,,123 no match
,123,123,123,123 no match
"" no match (empty string)
123 no match for the first regex, match for the second one
参见Regex dos';t给我预期的结果
编辑:修改正则表达式,使其包含不带任何逗号的单个数字的最后一个大小写。
请尝试此
无后缀/前缀逗号:[0-9]+(,[0-9]+)*
无前缀(可选后缀):[0-9]+(,[0-9]+)*,?
无后缀(可选前缀):,?[0-9]+(,[0-9])*
可选后缀和前缀:,?[0-9]+(,[0-9]+)*,?