Penguji Regex (pencocokan langsung, grup, penggantian)
Ketik regex dan teks uji โ pencocokan disorot secara langsung saat Anda mengetik. Aktifkan flag (g/i/m/s/u), periksa grup penangkapan, dan pratinjau penggantian.
Cara kerjanya
Apa yang dilakukan flag
g (global): temukan semua pencocokan, bukan hanya yang pertama. Diperlukan untuk perilaku ganti-semua. i (case-insensitive): /[a-z]/i mencocokkan kedua kasus. m (multiline): ^ dan $ mencocokkan pada batas baris, bukan hanya awal/akhir string. s (dotall): . juga mencocokkan baris baru. u (unicode): penanganan yang tepat untuk code point di atas 0xFFFF (emoji, karakter CJK dalam pasangan surrogate).
Kebanyakan orang memulai dengan /g/i/m. /s/ berguna untuk pencocokan teks multi-baris. /u/ direkomendasikan setiap kali Anda mungkin menemukan emoji atau karakter non-BMP โ tanpanya, /./ tidak akan mencocokkan emoji 4-byte sebagai satu karakter.
Grup penangkapan dan penggantian
Tanda kurung membuat grup penangkapan: /(\d{4})-(\d{2})/ pada '2026-05' menangkap '2026' dan '05' secara terpisah. Referensikan sebagai $1, $2 dalam penggantian. Grup bernama menggunakan (?<nama>...) dan referensi $<nama> dalam ganti.
Trik ganti umum: $& menyisipkan pencocokan penuh. $1, $2 dll. menyisipkan grup penangkapan. $$ menyisipkan tanda $ literal. Pratinjau penggantian di sini memungkinkan Anda memeriksa sebelum menjalankan pola yang sama pada teks nyata โ jauh lebih aman daripada langsung menjalankannya pada data produksi.
Jebakan yang perlu diperhatikan
Escape backslash. Untuk mencocokkan titik literal '.', gunakan '\.'. Dalam string sumber JavaScript ini menjadi '\\.' tetapi dalam alat ini Anda cukup ketik '\.' karena ini adalah sumber regex.
Backtracking katastrofik. Pola seperti /(a+)+/ pada 'aaaaโฆ!' bisa memakan waktu lama. Jika uji Anda tampak membeku, regex Anda mungkin memiliki kuantifier bersarang. Sederhanakan atau gunakan grup possessive/atomic (tidak tersedia di JS regex; gunakan desain hati-hati).
Greedy vs lazy. /<.+>/ pada '<a><b>' mencocokkan '<a><b>' (greedy). /<.+?>/ mencocokkan '<a>' (lazy). Pilih yang tepat untuk kasus penggunaan Anda.
Pertanyaan umum
โบVarian regex mana yang digunakan ini?
Regex ECMAScript JavaScript (yang diimplementasikan browser Anda). Sedikit berbeda dari PCRE yang digunakan di PHP, .NET, atau Python.
โบMengapa lookbehind tidak bekerja?
Di browser modern memang bisa โ Chrome, Firefox, Safari, Edge semuanya mendukung (?<=...) dan (?<!...) sejak 2021. Jika milik Anda tidak, browser Anda mungkin sudah usang.
โบApa yang dilakukan flag 'u'?
Mengaktifkan penanganan Unicode yang tepat. Emoji seperti ๐ (yang merupakan pasangan surrogate dalam UTF-16) diperlakukan sebagai satu karakter dengan /u/ tetapi dua dalam mode default.
โบBagaimana cara mencocokkan tab atau baris baru?
\t untuk tab, \n untuk baris baru, \r untuk carriage return, \s untuk spasi apapun termasuk semua ini.
โบMengapa penggantian saya tidak bekerja?
Paling sering, Anda lupa flag 'g' โ penggantian tanpa 'g' hanya menggantikan pencocokan pertama. Aktifkan 'g' untuk menggantikan semua.
โบBisakah saya menggunakan ini untuk teks yang sangat panjang?
Ya, hingga beberapa MB. Lebih dari itu, browser mungkin melambat. Hindari pola katastrofik (kuantifier bersarang) pada input panjang.
โบApakah data meninggalkan browser saya?
Tidak. Pola dan teks diproses secara lokal saja.
โบApakah ada cheat sheet regex?
Cari 'JavaScript regex cheat sheet'. Halaman RegExp MDN adalah referensi otoritatif.
Alat terkait
Terakhir diperbarui: