【发布时间】:2017-11-14 22:15:27
【问题描述】:
尝试用正则表达式解析逗号分隔的行,但得到的结果不一致:
正则表达式:([^,]*),?
实际值在匹配组 1 中(不包括逗号)。
预期结果:
a,,b -> 3 matches
a,,b, -> 4 matches
a,,,b -> 4 matches
匹配数为逗号数+1。
问题是即使没有逗号,最后的正则表达式匹配,所以得到:
a,,b -> 4 matches
a,,b, -> 4 matches
两者都返回 4 个匹配项,即使这些行具有不同数量的值。
是否可以在不更正代码结果的情况下修复正则表达式,使匹配数为值数(逗号 + 1)?
【问题讨论】:
-
您使用的语言是否有 regex.Split?
-
使用
([^,\v]+|(?<=,))(?=,|$)