我的正则表达伏都教力量还不足以击败这个:
输入:
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)
我在比赛中有逗号,但这没什么大不了的,主要问题是我只获得了最后一个"子组"每场比赛。为什么忽略第一个?
答案 0 :(得分:1)
.Net Regex很好的功能可以捕获重复的群体,并且在类似的问题上已经有很多答案,所以我只是把链接放在下面