Odpowiedzi:
Upewnij się, że w oknie dialogowym Znajdź i zamień wybrano opcję „Użyj: wyrażenia regularne”:
Uwaga: w przypadku programu Visual Studio 2010 nie działa to w rozszerzeniu „Szybkie wyszukiwanie” programu Visual Studio Productivity Power Tools (od aktualizacji z lipca 2011 r.); zamiast tego musisz użyć pełnego okna dialogowego Znajdź i zamień (użyj Ctrl + Shift + H lub Edytuj -> Znajdź i zamień -> Zamień w plikach) i zmień zakres na „Bieżący dokument”.
\)
gdy wyrażenia regularne są włączone ...
?
Postać musi być uciekł w Regex, ponieważ oznacza, że poprzedni element jest opcjonalny. Zatem poprawny tekst „Znajdź, co” ~~\?
, ze znakiem zapytania poprzedzonym odwrotnym ukośnikiem. Odpowiedź, którą podałeś, działa na przykładowym tekście, ponieważ zachłannie znajdzie drugą tyldę i zużyje ją, jednak jeśli tylda istnieje również w tekście w dowolnym miejscu, zostanie również nieprawidłowo zastąpiona nową linią.
Jeśli ustawisz flagę „Użyj wyrażeń regularnych”, \ n zostanie przetłumaczony. Pamiętaj jednak, że musisz zmodyfikować wyszukiwane hasło, aby było przyjazne dla wyrażeń regularnych. W twoim przypadku powinno się uciec w ten sposób „\ ~ \ ~ \?” (bez cytatów).
Jeśli chcesz uniknąć kłopotów ze znakami specjalnymi podczas wyszukiwania i zamiany ciągu podczas używania wyrażeń regularnych, wykonaj następujące czynności:
Pamiętaj, że nawet jeśli chcesz ręcznie dopasować dopasowania dla pierwszego wyszukiwania i zamienić, możesz bezpiecznie użyć opcji „zamień wszystko” dla trzech ostatnich kroków.
Na przykład, jeśli chcesz to zastąpić:
public IFoo SomeField { get { return this.SomeField; } }
z tym:
public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }
Dokonałbyś następujących zmian:
public IFoo SomeField { get { return this.SomeField; } }
→ XOXOXOXO
(regex wyłączony ).XOXOXOXO
→ XOXOXOXO\nHUHUHUHU
(regex on ).XOXOXOXO
→ public IFoo Foo { get { return this.MyFoo; } }
(regex wyłączony ).HUHUHUHU
→ public IFoo Bar { get { return this.MyBar; } }
(regex wyłączony ).Możesz użyć funkcji Multiline Search and Replace w makrze Visual Studio, które zapewnia ładne GUI dla zadania.