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

本文关键字:quot 查询 何重复 | 更新日期: 2023-09-27 18:01:12

我的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,然后是所有"|"分隔的"this=that"对。

我得到的匹配(和组(:

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

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

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

这是的一个不错的功能。Net Regex来捕获重复的组,类似的问题已经有了很多答案,所以我只在下面放一个链接

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