Visual Studio Code Wyszukaj i zamień na wyrażenia regularne


116

Chcę użyć „Znajdź i zastąp” w Visual Studio Code zmienić każde wystąpienie <h1>content</h1>aby #### contentw dokumencie za pomocą wyrażenia regularnego.

Jak mogę to osiągnąć?


2
Czy musi to być wyszukiwanie i zamiana wyrażenia regularnego? Można po prostu zastąpić <h4>z #### a następnie wymienić </h4>z ''?
Brett East

Odpowiedzi:


190

Więc Twoim celem jest wyszukanie i zastąpienie?
Według oficjalnego pliku PDF ze skrótami klawiaturowymi programu Visual Studio, możesz nacisnąć Ctrl + Hw systemie Windows i Linux lub ⌥⌘Fna komputerze Mac, aby włączyć narzędzie wyszukiwania i zamiany:

Karta Wyszukaj i zamień w programie Visual Studio Code Jeśli chcesz wyłączyć kod, wystarczy wpisać <h1>wyszukiwanie i zamienić na ####.

Ale jeśli chcesz używać tego regex zamiast, można włączyć ją w ikonie: . *i użyć wyrażenia regularnego: <h1>(.+?)<\/h1>i wymienić na: #### $1.

I jak @tpartee zasugerował, tutaj jest trochę więcej informacji na temat silnika Visual Studio, jeśli chcesz dowiedzieć się więcej:


3
Visual Studio będzie obsługiwać wyrażenie regularne jak każda inna aplikacja, jedyną różnicą są tak zwane smaki wyrażenia regularnego, czyli „kompilator” wyrażenia regularnego i sposób, w jaki potraktuje to wyrażenie. Zwykle jest to ignorowane w takich odpowiedziach, ponieważ większość z nich jest dość podobna, ale dla tych, którzy nadal chcą to sprawdzić, dodałem to do odpowiedzi
Mateus

2
Pytanie dotyczy Visual Studio Code, a ta odpowiedź dotyczy Visual Studio.
Dustin Wyatt

1
lub zmień swoje skróty klawiszowe. Przykład: Według IDEA Keybindings ( marketplace.visualstudio.com/… ) możesz użyć: Ctrl + Shift + R do zamiany w ścieżce lub do znalezienia w ścieżce: Ctrl + Shift + F
SL5net

6

Dla początkujących chciałem dodać do zaakceptowanej odpowiedzi, ponieważ kilka subtelności było dla mnie niejasnych:

Aby znaleźć i zmodyfikować tekst (nie całkowicie zastąpić),

  1. W kroku „Znajdź” możesz użyć wyrażenia regularnego z „grupami przechwytywania”, np. Twoje wyszukiwanie mogłoby być la la la (group1) blah blah (group2)przy użyciu nawiasów.

  2. A następnie w punkcie „Wymiana”, można zwrócić się do grup poprzez przechwytywanie $1, $2etc.

Na przykład w tym przypadku moglibyśmy znaleźć odpowiedni tekst z tylko <h1>.+?<\/h1>(bez nawiasów), ale umieszczenie nawiasów <h1>(.+?)<\/h1>pozwala nam odnieść się do dopasowania podrzędnego między nimi, tak jak $1w kroku zamiany . Chłodny!

Uwagi

  • Aby włączyć Regex w Find Widget, kliknij .*ikonę lub naciśnijCmd/Ctrl Alt R

  • $0 odnosi się do całego meczu

  • Na koniec pierwotne pytanie mówi, że zamiana powinna nastąpić „w dokumencie”, więc możesz użyć „Widgetu wyszukiwania” ( Cmdlub Ctrl+ F), który jest lokalny dla otwartego dokumentu, zamiast „Wyszukaj”, które otwiera większy interfejs użytkownika i przeszukuje wszystkie pliki w projekcie.


0

Upewnij się, że opcja Dopasuj wielkość liter jest zaznaczona przy opcji Użyj wyrażenia regularnego, więc to pasuje. [AZ] * Jeśli nie wybrano wielkości dopasowania, oznacza to dopasowanie do wszystkich liter.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.