Visual Studio 2013:查找/替换的正则表达式中的错误

时间:2015-01-11 06:41:30

标签: regex replace visual-studio-2013 find

我在Visual Studio 2013查找/替换对话框中使用以下正则表达式在解决方案中的任何位置查找命名空间引用,但不是在using语句引用的位置:

(?!using) System.Data.Entity

但是,我收到了using System.Data.Entity个结果的大量结果。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

你需要一个后视,而不是前瞻:

(?<!using )System.Data.Entity

您的正则表达式会查找下一个字符不是using的位置,然后它会倒退并尝试匹配从同一位置开始的第二个条件:System.Data.Entity。如果第二个条件为真,那么你已经超过了第一个条件的重要性。

因为lookbehind会查看前面的字符,所以它会将起始位置保留在正确的位置以测试第二个条件。