1οΈβ£ Dasar Regex dalam Find & Replace β
Saat menggunakan Find & Replace di VS Code, kamu bisa mengaktifkan Regex Mode dengan mengklik ikon .* di kolom pencarian atau menggunakan shortcut Alt + R.
πΉ Simbol Penting dalam Regex
| Regex | Fungsi | Contoh |
|---|---|---|
. | Mewakili karakter apa saja kecuali newline | h.t cocok dengan "hat", "hit", "hot" |
.* | Mencocokkan semua karakter dalam satu baris | hello.*world cocok dengan "hello amazing world" |
.*? | Versi non-greedy (berhenti saat menemukan kecocokan pertama) | <b>.*?</b> hanya mengambil teks dalam <b></b> pertama |
\d | Mencocokkan angka (0-9) | \d+ cocok dengan "123" dalam "ID: 123" |
\w | Mencocokkan huruf, angka, dan underscore | \w+ cocok dengan "username_1" |
\s | Mencocokkan spasi, tab, newline | Hello\sWorld cocok dengan "Hello World" |
\b | Word boundary (batas kata) | \bcat\b hanya cocok dengan "cat", tidak "category" |
2οΈβ£ Contoh Find & Replace Praktis β
π’ 2.1 Menghapus Tag <span> Tanpa Menghapus Isinya β
πΉ Kasus:
Kamu ingin menghapus<span class="title">...</span>tapi tetap mempertahankan teks di dalamnya.
β Find (Regex Mode) β
<span class="title">(.*?)</span>β Replace dengan β
$1πΉ Hasil Perubahan:
<span class="title">Web Development Tutorials</span>β‘ Menjadi:
Web Development Tutorialsπ Penjelasan:
(.*?)β Menangkap teks di dalam<span>dengan mode non-greedy supaya berhenti di</span>pertama yang ditemukan.$1β Mengganti hasil pencarian dengan teks yang ditangkap (tanpa<span>).
π’ 2.2 Mengubah <span> Menjadi <strong> Tanpa Mengubah Teks β
πΉ Kasus:
Mengubah<span class="title">...</span>menjadi<strong>...</strong>
β Find (Regex Mode) β
<span class="title">(.*?)</span>β Replace dengan β
<strong>$1</strong>πΉ Hasil Perubahan:
<span class="title">Important Text</span>β‘ Menjadi:
<strong>Important Text</strong>π’ 2.3 Menambahkan class="highlight" ke Semua <h2> Tanpa Mengubah Teks β
πΉ Kasus:
Kamu ingin menambahkan classhighlightke semua<h2>yang belum punya class.
β Find (Regex Mode) β
<h2>(.*?)</h2>β Replace dengan β
<h2 class="highlight">$1</h2>πΉ Hasil Perubahan:
<h2>My Title</h2>β‘ Menjadi:
<h2 class="highlight">My Title</h2>π’ 2.4 Menemukan dan Menghapus Baris yang Kosong β
πΉ Kasus:
Menghapus semua baris kosong atau hanya berisi spasi/tab.
β Find (Regex Mode) β
^\s*$\nβ Replace dengan (Kosongkan) β
πΉ Hasil Perubahan:
<h2>Title</h2>
<p>Some content</p>
<p>Another paragraph</p>β‘ Menjadi:
<h2>Title</h2>
<p>Some content</p>
<p>Another paragraph</p>π Penjelasan:
^β Awal baris\s*β Semua spasi/tab$β Akhir baris\nβ Baris baru
π’ 2.5 Mengganti URL dalam Tag <a> Tanpa Mengubah Label β
πΉ Kasus:
Kamu ingin mengubah semua tautan darihttp://menjadihttps://tapi tanpa mengubah teks di dalam<a>.
β Find (Regex Mode) β
<a href="http://(.*?)">β Replace dengan β
<a href="https://$1">πΉ Hasil Perubahan:
<a href="http://example.com">Klik di sini</a>β‘ Menjadi:
<a href="https://example.com">Klik di sini</a>3οΈβ£ Tips & Best Practices β
β
Gunakan .*? untuk pencarian non-greedy agar tidak menangkap lebih dari yang diinginkan.
β
Gunakan $1, $2, ... untuk menggantikan teks yang ditangkap oleh regex.
β
Cek hasil dengan "Find All" sebelum mengganti seluruh file!
β
Gunakan fitur multi-cursor (Ctrl + D atau Alt + Click) jika ada pola yang bisa diubah manual.
Kalau kamu ingin mengubah hanya kondisi ## (h2 dalam Markdown) tanpa mengubah # (h1) atau ### (h3) di VS Code menggunakan Find & Replace dengan Regex, berikut caranya:
πΉ Regex untuk Menemukan Hanya ## (h2) β
β Find (Regex Mode) β
(?<!#)##(?!#)π Penjelasan: β
(?<!#)β Pastikan di depan##tidak ada#(agar tidak menangkap###).##β Menangkap##sebagai target penggantian.(?!#)β Pastikan setelah##tidak ada#(agar tidak menangkap###).
πΉ Contoh Perubahan β
Sebelum:
# Ini H1
## Ini H2
### Ini H3
## H2 Kedua
#### Ini H4Misalnya, ingin menambahkan class="highlight" hanya ke ## (h2):
β Replace dengan: β
## <span class="highlight">Hasil Akhir:
# Ini H1
## <span class="highlight"> Ini H2
### Ini H3
## <span class="highlight"> H2 Kedua
#### Ini H4πΉ Contoh Kasus Lain β
Mengubah ## menjadi == ... == (Markdown Highlight) β
Jika kamu ingin mengganti ## dengan format highlight ==text==:
β Find (Regex Mode) β
(?<!#)## (.*)β Replace dengan β
== $1 ==πΉ Sebelum:
# Ini H1
## Ini H2
### Ini H3
## H2 KeduaπΉ Setelah Replace:
# Ini H1
== Ini H2 ==
### Ini H3
== H2 Kedua ==π― Kesimpulan β
| Keperluan | Find (Regex) | Replace Dengan |
|---|---|---|
Hapus <span> tanpa hapus teks | <span class="title">(.*?)</span> | $1 |
Ubah <span> jadi <strong> | <span class="title">(.*?)</span> | <strong>$1</strong> |
Tambah class ke <h2> | <h2>(.*?)</h2> | <h2 class="highlight">$1</h2> |
| Hapus baris kosong | ^\s*$\n | (kosongkan) |
Ganti http:// jadi https:// di <a> | <a href="http://(.*?)"> | <a href="https://$1"> |
| Keperluan | Find (Regex) | Replace Dengan |
|---|---|---|
Ubah hanya ## menjadi h2 HTML | (?<!#)## (.*) | <h2>$1</h2> |
Tambahkan class="highlight" ke ## | (?<!#)## (.*) | ## <span class="highlight">$1</span> |
Ganti ## dengan highlight Markdown == | (?<!#)## (.*) | == $1 == |
Dengan regex ini, kamu bisa target hanya ## tanpa kena # atau ###! π