0

私は正規表現を持っています:

ConfigurationManager.ConnectionStrings.Item\(\"((?!foo).)*\"

これはRubularで機能し、期待どおりに2つの文字列の2番目に一致します。

ConfigurationManager.ConnectionStrings.Item("foo")
ConfigurationManager.ConnectionStrings.Item("bar")

ただし、Visual Studio 2005で同じ式を実行すると、一致するものが得られません。ConfigurationManager.ConnectionStrings.Item...単語に一致するものはないため、実際には、存在するすべてのインスタンスに一致する必要がありますfoo

もちろん、逆式がVisualStudioで機能しない場合を除きます。

それが本当なら、Visual Studio 2005で同じ結果を得るにはどうすればよいですか?

4

1 に答える 1

2

以下の正規表現は、通常のPerlベースの正規表現構文ではないVisualStudioの検索および置換機能の正規表現の構文から適応されています。

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)機能するのと同じように機能するはずです。

于 2013-03-18T16:52:26.443 に答える