我正在尝试替换字符串中的多个值。由于框架限制,我需要使用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