查找"替换"的所有实例但不是" .Replace"

时间:2016-11-08 17:55:12

标签: regex visual-studio visual-studio-2015

由于方法命名的不幸选择,使用SO / Google搜索几乎无法找到答案...

TL; DR 如何在我的应用中找到函数enable_if的所有实例,而不是扩展方法Replace(

长版本:我正在将一个大型VB.Net应用转换为C#。在250,000行代码中,我知道除了Replace方法之外,还有Visual Basic String.Replace函数的用法。

是否可以搜索.Replace(,而不包含Replace的出现次数?我标记了RegEx,因为我希望这是方式,并且有play about at RegExr,但无法完全弄明白。

感谢。

1 个答案:

答案 0 :(得分:3)

  

如何在我的应用中找到函数Replace(的所有实例,而不是扩展方法.Replace(

你需要使用带有负面lookbehind的正则表达式:

(?<!\.)Replace\(
^^^^^^^

(?<!\.) lookbehind将使Replace(之前紧跟.的所有匹配失效。

如果您想匹配前面只有空格的Replace(,请使用(?<!\S)Replace\((?<!\S)将需要Replace(之前的空格或字符串开头。

由于(.是特殊的正则表达式元字符,因此必须使用\进行转义。

请参阅regex demo