正则表达式匹配具有相同前缀的多个值

时间:2018-04-20 12:20:46

标签: c# regex

我正在尝试替换字符串中的多个值。由于框架限制,我需要使用Regex。 我查看了this解决方案来循环捕获和this solution来替换多个捕获 我试图替换依赖于其他组的组的多个迭代。

例如,在字符串

WfTarget[...] Id:28 [...] Documents [...] Id:22 [...] Id: 30

我正在尝试提取数字22和30.

使用以下Regex,我能够提取最新的Id,并且有多个捕获:

(?<start>( WfTarget))(?<grouper>( Id: (?<Wanted>([\d]+))[^ ]*)*)

有了这个,我可以编写一个替换字符串,如${grouper},并获得所有迭代,但包括ID。一旦我尝试,想要,我只得到最后的结果

循环捕获的问题在于,这是一个通用框架,并且无法说明循环必须发生在哪个组上。此外,替换字符串可能有多个组来获取内容。导致额外的非通缉值

修改

输入:

"WfTarget":"Status": "Active","Id": 2134,"StatusDisplay": "Version": 2, [...]"Documents": [ "Index": 0, "Id": 95, "Version": 0, "Index": 1, "Id": 42, [...]

预期产出:

95,42

0 个答案:

没有答案