如何在Visual Studio 2012 Regex查找和替换中找到前瞻性

时间:2013-08-02 19:57:21

标签: regex visual-studio-2012 replace regex-lookarounds lookahead

我正在尝试查找所有使用cs文件中的语句,这些语句包含对其后面的文件中类的引用。

例如,如果在其后面的文件中的任何位置找到using Example.Foo;,我想匹配BaseClass<SomeClass>

像这样:

enter image description here

我试过(using Example.Foo;)(?=[.\s\n]*BaseClass\<SomeClass\>[.\s\n]*)但没有快乐......

更新

为清楚起见,这适用于VS 2012 IDE查找和替换对话框。

2 个答案:

答案 0 :(得分:2)

您需要添加(?s),以启用多行匹配,并且还可以在using Example.Foo中转义句点。正则表达式应该是:

(?s)using Example\.Foo;(?=.*BaseClass<SomeClass>)

答案 1 :(得分:1)

我自己想出来了。

(?s)using Example\.Foo;(?=(.*|\s\r)BaseClass\<SomeClass\>(.*|\s\r))

这就是诀窍!

感谢(?s)提示,这是必需的!为此+1 ...