需要有关正则表达式的帮助来转换代码

时间:2011-06-01 14:06:57

标签: regex visual-studio

我有以下项目的大量列表:

    _tags.Add(Foo.Bar,
                  new Baz(
                      ...
                      ));

        _tagNames.Add("Bar",
                  _tags[Foo.Bar]);

其中Bar和Baz(...)不同,_tags,_tagNames和Foo保持不变。

我想转型为

    case "Bar":
        _tags.Add(Foo.Bar,
                  new Baz(
                      ...
                      ));

        _tagNames.Add("Bar",
                  _tags[Foo.Bar]);

        break;

我正在使用支持正则表达式的Visual Studio。

有什么想法吗?

谢谢!

更新:VS无法处理此正则表达式的2300个实例。我在Eclipse中工作了这个:

搜索模式:_tags.Add((?:。| \ R)*?_ tags [Foo。(。*?)]);

替换:case“\ 1”:\ n \ 0 \ n break;

1 个答案:

答案 0 :(得分:1)

在VS 2008上测试:

_tags\.Add\((.|\n)@_tags\[Foo\.{(.@)}\]\);

这是替换字符串:

case "\1":\n\0\nbreak;

您可能需要插入一些制表符以保留缩进(或使用自动格式)。

<强>更新

在vs

中使用的经过测试和修复的正则表达式