Visual Studio Code Search dan Replace dengan Regular Expressions

116

Saya ingin menggunakan "Search And Replace" dalam Visual Studio Code untuk mengubah setiap contoh <h1>content</h1>ke #### contentdalam dokumen menggunakan Regular Expression.

Bagaimana saya bisa melakukannya?

Tom
sumber
2
Apakah harus berupa pencarian dan penggantian regex? Bisakah Anda mengganti <h4>dengan #### dan kemudian mengganti </h4>dengan ''?
Brett East

Jawaban:

190

Jadi, tujuan Anda adalah mencari dan mengganti?
Menurut pdf shotcuts keyboard Visual Studio Resmi, Anda dapat menekan Ctrl + Hdi Windows dan Linux , atau ⌥⌘Fdi Mac untuk mengaktifkan alat pencarian dan penggantian:

Tab pencarian & ganti kode studio visual Jika Anda bermaksud menonaktifkan kode, Anda hanya perlu memasukkan <h1>pencarian, dan ganti ke ####.

Tetapi jika Anda ingin menggunakan regex ini sebagai gantinya, Anda dapat mengaktifkannya di ikon: . *dan menggunakan regex: <h1>(.+?)<\/h1>dan mengganti ke: #### $1.

Dan seperti yang disarankan @tpartee , berikut beberapa informasi lebih lanjut tentang mesin Visual Studio jika Anda ingin mempelajari lebih lanjut:

Mateus
sumber
3
Visual Studio akan menangani regex seperti aplikasi lainnya, satu-satunya perbedaan adalah apa yang disebut ragam regex, yang merupakan 'kompiler' dari regex dan bagaimana cara memperlakukan ekspresi tersebut. Biasanya, jawaban seperti ini diabaikan karena kebanyakan sangat mirip, tetapi bagi yang masih ingin memeriksanya, saya telah menambahkannya ke jawabannya
Mateus
2
Pertanyaannya adalah tentang Visual Studio Code, dan jawaban ini adalah tentang Visual Studio.
Dustin Wyatt
1
atau ubah Keybindings Anda. Contoh: Dengan Keybindings IDEA ( marketplace.visualstudio.com/… ) Anda dapat menggunakan: Ctrl + Shift + R untuk Replace in Path atau untuk Find In Path: Ctrl + Shift + F
SL5net
6

Untuk pemula, saya ingin menambahkan jawaban yang diterima, karena beberapa kehalusan tidak jelas bagi saya:

Untuk menemukan dan mengubah teks (tidak sepenuhnya menggantikan),

  1. Pada langkah "Temukan", Anda dapat menggunakan regex dengan "grup penangkap", misalnya pencarian Anda dapat dilakukan la la la (group1) blah blah (group2), menggunakan tanda kurung.

  2. Dan kemudian di langkah "Ganti", Anda dapat merujuk ke grup penangkap melalui $1, $2dll.

Jadi, misalnya, dalam hal ini kami dapat menemukan teks yang relevan dengan hanya <h1>.+?<\/h1>(tanpa tanda kurung), tetapi memasukkan tanda kurung <h1>(.+?)<\/h1>memungkinkan kita untuk merujuk ke sub-kecocokan di antara mereka seperti $1pada langkah ganti . Keren!

Catatan

  • Untuk mengaktifkan Regex di Temukan Widget, klik .*ikon, atau tekanCmd/Ctrl Alt R

  • $0 mengacu pada keseluruhan pertandingan

  • Terakhir, pertanyaan awal menyatakan bahwa penggantian harus terjadi "dalam dokumen", sehingga Anda dapat menggunakan "Temukan Widget" ( Cmdatau Ctrl+ F), yang merupakan lokal untuk dokumen yang terbuka, bukan "Penelusuran", yang membuka UI yang lebih besar dan mencari di semua file dalam proyek.

Tedskovsky
sumber
0

Pastikan Match Case dipilih dengan Use Regular Expression sehingga cocok. [AZ] * Jika kasus pertandingan tidak dipilih, ini cocok dengan semua huruf.

David Morrow
sumber
-3

Uji di Sini: Regex Storm

Contoh:

Ekspresi Reguler: <option value=".*.">|</option>

Teks:

<option value="1">Something</option>

Hasil:

Sesuatu

JOSE DE JESUS ​​BECERRA VAZQUEZ
sumber