如何重复非捕获组"子查询"?

时间:2016-08-05 14:34:28

标签: c# .net regex

我的正则表达伏都教力量还不足以击败这个:

输入:

x|a=1|b=2,y|c=3|d=4,
(如果你允许我删掉最后一个逗号,则奖励积分)

所需的匹配(和群组):

x|a=1|y=2 (x,a,1,y,2)
y|c=3|d=4 (y,c,3,d,4)
(如果我可以为每个小组命名,则为奖励积分)

我的失败模式:

(x|y|z)(?:\|(.+?)=(.+?))*,

基本上,我想要x,y或z以及所有' |'分开的一对'这=那个'之后。

匹配(和群组)我得到:

x|a=1|b=2, (x,b,2)
y|c=3|d=4, (y,d,4)

我在比赛中有逗号,但这没什么大不了的,主要问题是我只获得了最后一个"子组"每场比赛。为什么忽略第一个?

1 个答案:

答案 0 :(得分:1)

.Net Regex很好的功能可以捕获重复的群体,并且在类似的问题上已经有很多答案,所以我只是把链接放在下面

https://stackoverflow.com/a/11051948/1009099