Text/Clean

Kumpulan pola praktis cari dan ganti dengan regex

Pola regex JavaScript siap pakai untuk cari dan ganti: ubah format tanggal, samarkan nomor telepon, hapus isi kurung, hapus spasi akhir baris, dan rujukan grup $1.

Cari dan ganti mendukung mode biasa dan mode regex. Mode biasa mencari karakter persis seperti yang diketik, sedangkan mode regex mencari berdasarkan pola. Tulisan ini merangkum aturan mode regex dan pola yang sering dipakai.

Aturan regex di alat ini

  • Sintaksnya adalah regex JavaScript milik browser.
  • Flag g (ganti semua), m (multibaris), dan u (Unicode) ditambahkan otomatis. Jika 'Abaikan huruf besar/kecil' diaktifkan, i ditambahkan.
  • Karena flag m, ^ dan $ cocok dengan awal dan akhir setiap baris, bukan seluruh teks.
  • Karena flag u, garis miring terbalik yang tidak perlu menjadi galat. Misalnya \: tidak boleh dipakai dan harus ditulis :. Properti Unicode seperti \p{L} dapat digunakan.
  • Pada teks pengganti, $1, $2 adalah grup kurung, $& adalah seluruh kecocokan, dan $$ adalah satu karakter $. \n menjadi jeda baris dan \t menjadi tab.
  • Jika pola mengandung galat, langkah itu tidak mengubah masukan dan menampilkan galat.
\s juga cocok dengan jeda baris. Untuk mencari spasi saja tanpa melewati baris, gunakan [ \t].

Pola praktis

Berikut ditulis dalam format 'teks yang dicari → teks pengganti'. Jika teks pengganti tertulis '(kosong)', biarkan kolomnya kosong.

1. Mengubah format tanggal

(\d{4})-(\d{2})-(\d{2})$1.$2.$3

2026-09-23  →  2026.09.23

Untuk mengubah urutan, pindahkan posisi nomor grup seperti $3/$2/$1.

2. Menyamarkan bagian tengah nomor ponsel

(01[016789])-?(\d{3,4})-?(\d{4})$1-****-$3

010-1234-5678  →  010-****-5678
01098765432    →  010-****-5432

Pola ini untuk format nomor ponsel Korea (010 dan seterusnya); sesuaikan awalannya untuk nomor negara lain.

3. Menyamarkan bagian depan email

\b([A-Za-z0-9._%+-]{2})[A-Za-z0-9._%+-]*@$1***@

hong.gildong@example.com  →  ho***@example.com

4. Menghapus kurung beserta isinya

\s*\([^)]*\) → (kosong)

Jakarta(pusat) Bandung (cabang)  →  Jakarta Bandung

Struktur kurung bersarang seperti ((a)) mungkin tidak terhapus sekaligus.

5. Menghapus spasi di akhir baris

[ \t]+$ → (kosong)

6. Meringkas tiga baris kosong atau lebih menjadi satu

\n{3,}\n\n

7. Menghapus koma ribuan pada angka

(\d),(?=\d{3}\b)$1

Rp1,234,567  →  Rp1234567

8. Menghapus query dan hash pada URL

(https?:\/\/[^\s?#]+)[?#]\S*$1

https://example.com/page?utm_source=a#top  →  https://example.com/page

9. Menghapus waktu di depan riwayat obrolan

^\[?\d{1,2}:\d{2}(?::\d{2})?\]?[ \t]* → (kosong)

[12:30] Selamat siang  →  Selamat siang

10. Menukar urutan 'Nama belakang, Nama depan'

^([^,\n]+),[ \t]*(.+)$$2 $1

Kim, Minsu  →  Minsu Kim

11. Meringkas kata yang berulang menjadi satu

\b(\w+)[ \t]+\1\b$1 (jika 'Abaikan huruf besar/kecil' diaktifkan, The the juga tertangkap)

12. Memberi spasi antara Hangul dan huruf Latin

(\p{Script=Hangul})([A-Za-z])$1 $2

한글abc  →  한글 abc

Untuk aksara lain, ganti nama skripnya, misalnya \p{Script=Han} untuk Hanzi/Kanji.

13. Mengapit angka dengan kurung siku

\d+(?:\.\d+)?[$&]

Kesalahan yang sering terjadi

  • Memakai titik (.) apa adanya: dalam regex, . berarti satu karakter apa pun. Untuk mencari titik kalimat atau titik pada domain, tulis \.. example.com juga cocok dengan exampleXcom.
  • .\* yang rakus: <.*> menangkap seluruh bagian dari < pertama hingga > terakhir dalam satu baris. Jika diterapkan pada <b>x</b> <i>y</i>, teksnya pun ikut hilang semua. Untuk menangkap satu tag demi satu, gunakan <[^>]*> atau <.*?>.
  • $ pada teks pengganti: dalam mode regex, untuk memasukkan $ ke teks pengganti seperti pada penulisan harga, tulis $$. Dalam mode biasa, $ dimasukkan apa adanya.
  • Mencari karakter khusus sebagai teks: untuk mencari ( ) [ ] + ? *, tambahkan garis miring terbalik di depannya. Jika simbolnya banyak, lebih mudah mematikan regex dan mencari dalam mode biasa.

Menangani beberapa baris sekaligus

Jika \n dimasukkan ke teks yang dicari, jeda baris itu sendiri bisa dicari. Misalnya ,\n, menggabungkan baris yang diakhiri koma dengan baris berikutnya. Jika tujuannya menghapus seluruh baris, Filter baris lebih sederhana daripada regex. Untuk memecah baris per kalimat, dasar 'Akhir kalimat' pada Tambah jeda baris (pisahkan) lebih aman.

Urutan itu penting

Beberapa langkah cari dan ganti bisa dimasukkan ke satu pipeline dan diterapkan berurutan dari atas. Hasil langkah sebelumnya menjadi masukan langkah berikutnya, jadi sering kali spasi perlu dirapikan dulu agar pola cocok. Meletakkan Hapus spasi di awal dan akhir dan Rapikan spasi dan tab berurutan di depan membuat pola bisa ditulis lebih sederhana.

Daftar periksa

  • Untuk pola per baris, gunakan ^ dan $.
  • Agar tidak melewati baris, gunakan [ \t] alih-alih \s.
  • Periksa hasilnya; jika salah, matikan langkahnya lalu perbaiki polanya.

Terakhir diperbarui: 2026-09-23