我有一个RegEx:
ConfigurationManager.ConnectionStrings.Item\(\"((?!foo).)*\"
适用于Rubular,并按预期匹配两个字符串的第二:
ConfigurationManager.ConnectionStrings.Item("foo")
ConfigurationManager.ConnectionStrings.Item("bar")
但是,如果我在Visual Studio 2005中运行相同的表达式 - 我没有匹配。它实际上应匹配ConfigurationManager.ConnectionStrings.Item...
存在的每个实例,因为它们都不匹配单词foo
。
当然,除非反向表达式在Visual Studio中不起作用。
如果这是真的,我将如何在Visual Studio 2005中获得相同的结果?
答案 0 :(得分:2)
下面的正则表达式改编自regular expression for find and replace feature in Visual Studio的语法,不是通常的基于Perl的正则表达式语法。
ConfigurationManager.ConnectionStrings.Item\("(~(foo).)*"
~(pattern)
,根据描述:
Prevent match ~(X) Prevents a match when X appears at this point in the expression. For example, real~(ity) matches the "real" in "realty" and "really," but not the "real" in "reality."
应该与负前瞻(?!pattern)
的工作方式类似。