回答:
[検索と置換]ダイアログで[使用:正規表現]が選択されていることを確認します。
Visual Studio 2010の場合、これはVisual Studio Productivity Power Toolsの「Quick Find」拡張機能では機能しないことに注意してください(2011年7月の更新時点)。代わりに、完全な検索と置換ダイアログ(Ctrl + Shift + Hまたは編集->検索と置換->ファイル内の置換を使用)を使用し、スコープを「現在のドキュメント」に変更する必要があります。
\)
正規表現がオンになっている場合などに忘れずに使用してください...
?
文字は、前の要素がオプションであることを示しているため、正規表現でエスケープする必要があります。したがって、正しい「Find what」テキストは~~\?
、疑問符がバックスラッシュでエスケープされています。2番目のチルドを欲張って見つけて消費するため、あなたが出した答えはサンプルテキストで機能しますが、単一のチルドもテキスト内のどこかに存在する場合、不適切に改行に置き換えられます。
正規表現を使用するときに、検索文字列と置換文字列で特殊文字をエスケープする手間を回避するには、次の手順を実行します。
最初の検索と置換で手動で一致を選択したい場合でも、最後の3つのステップで「すべて置換」を安全に使用できることに注意してください。
たとえば、これを置き換える場合:
public IFoo SomeField { get { return this.SomeField; } }
それと:
public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }
次の置換を行います。
public IFoo SomeField { get { return this.SomeField; } }
→ XOXOXOXO
(正規表現はオフ)。XOXOXOXO
→ XOXOXOXO\nHUHUHUHU
(正規表現で)。XOXOXOXO
→ public IFoo Foo { get { return this.MyFoo; } }
(正規表現はオフ)。HUHUHUHU
→ public IFoo Bar { get { return this.MyBar; } }
(正規表現はオフ)。タスクに優れたGUIを提供するVisual Studioマクロで複数行の検索と置換を使用できます。