2

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

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

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

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

现在对于每一个事件我想用这样的东西替换它:

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

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

谢谢

4

2 回答 2

0

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

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

于 2013-02-15T17:35:21.510 回答
0

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

于 2013-02-15T17:39:33.433 回答