Visual Studio正则表达式替换重复捕获组

时间:2013-02-15 17:25:31

标签: c# regex visual-studio-2010 replace capturing-group

我正在开展一个相当大的项目(c#),从一个地方到另一个地方,我有一些看起来像这样的片段:

((int)foo).ToString() + "," + ((int)bar).ToString() + "," + ((int)zig).ToString() + ...

逗号分隔的字符串具有任意长度(平均范围从1到5,但我不确定是否还有更多)。到目前为止,我能够找到我想要使用的所有事件:

\({.+}\).ToString\(\)( *\+ *"," *\+ *\({.+}\).ToString\(\))*

现在每次发生我想用这样的东西替换它:

{ (int)foo, (int)bar, (int)zig , ...}

手动替换每个事件是不可行的,是否有替换正则表达式来完成这项工作?

由于

2 个答案:

答案 0 :(得分:0)

是的,您可以使用正则表达式在Visual Studio中进行查找和替换。

简而言之,您需要对标记表达式使用花括号,并使用\1\2等重复使用它们。

答案 1 :(得分:0)

我可能误解了你的问题,但听起来你已经得到了答案......使用System.Text.RegularExpressions.Regex.Replace(string, string)。如果需要细粒度控制,请考虑使用名称包装捕获:\((?<foo>.+)\)(或使用索引)。使用这些捕获,您可以手动执行替换,如果需要循环匹配,然后迭代捕获。