我在Visual Studio 2013查找/替换对话框中使用以下正则表达式在解决方案中的任何位置查找命名空间引用,但不是在using语句引用的位置:
(?!using) System.Data.Entity
但是,我收到了using System.Data.Entity
个结果的大量结果。
我在这里做错了什么?
答案 0 :(得分:1)
你需要一个后视,而不是前瞻:
(?<!using )System.Data.Entity
您的正则表达式会查找下一个字符不是using
的位置,然后它会倒退并尝试匹配从同一位置开始的第二个条件:System.Data.Entity
。如果第二个条件为真,那么你已经超过了第一个条件的重要性。
因为lookbehind会查看前面的字符,所以它会将起始位置保留在正确的位置以测试第二个条件。