Cara menggunakan
- Ketik ekspresi reguler di kolom Pattern, tanpa garis miring di sekelilingnya.
- Centang flag yang diperlukan. g (global) menemukan semua kecocokan, bukan hanya yang pertama.
- Tempel teks yang ingin dicari. Kecocokan akan disorot dan dicantumkan bersama indeks serta grup tangkapannya.
- Opsional, masukkan penggantian seperti $2-$1 untuk melihat pratinjau hasil String.replace.
Cara kerja
Penguji ini menjalankan pola menggunakan objek RegExp bawaan browser, sehingga hasilnya sama persis dengan yang dihasilkan kode JavaScript (ECMAScript) di browser tersebut. Bahasa lain menggunakan varian regex yang berbeda: PCRE (PHP), modul re Python, Java, dan .NET mendukung fitur yang tidak tersedia di JavaScript, seperti possessive quantifier (a++), grup atomik ((?>…)), modifier inline seperti (?i), dan rekursi. Detail seperti anchor \A dan \Z juga bisa berbeda. Uji pola dalam bahasa yang akan digunakan sebelum mengandalkannya. Lookbehind ((?<=…)), grup bernama ((?<name>…)), dan Unicode property escape (\p{L} dengan flag u) berfungsi di semua browser saat ini.
Tanpa flag g atau y, hanya kecocokan pertama yang ditemukan, seperti pada RegExp.exec. Kecocokan dengan panjang nol, misalnya ^ atau \b, akan dicantumkan tetapi tidak disorot; setelah menemukannya, pencarian berlanjut satu karakter setelahnya (satu titik kode dengan flag u), seperti pada String.matchAll. Grup tangkapan ditampilkan berdasarkan nomor dan, jika ditentukan, berdasarkan nama. Grup yang tidak berpartisipasi dalam kecocokan ditandai tidak memiliki nilai, yang berbeda dari kecocokan kosong.
Beberapa pola, seperti (a+)+$ pada baris panjang tanpa kecocokan, memerlukan waktu eksponensial untuk gagal (catastrophic backtracking). Untuk mengurangi risiko, pencocokan dimulai sesaat setelah Anda berhenti mengetik, pencarian hanya mencakup 100,000 karakter pertama teks, dan paling banyak 1,000 kecocokan dikumpulkan. Pola yang bermasalah tetap dapat membuat tab tidak responsif untuk sementara; jika itu terjadi, sederhanakan pola atau persingkat teks.
Contoh
Mengekstrak tanggal
Pola (\d{4})-(\d{2})-(\d{2}) dengan flag g aktif menemukan dua kecocokan pada “Jatuh tempo 2026-03-15, dibayar 2026-04-02”. Grup 1 adalah tahun; penggantian $3.$2.$1 mengubah teks menjadi “Jatuh tempo 15.03.2026, dibayar 02.04.2026”.
Grup bernama untuk kode yang mudah dibaca
(?<key>\w+)=(?<value>[^&]*) pada string kueri a=1&b=two menampilkan key dan value untuk setiap pasangan, sama seperti nilai yang dikembalikan oleh match.groups.key dan match.groups.value di JavaScript.
Pencarian tanpa membedakan huruf besar-kecil di seluruh baris
^error:.* dengan flag g, i, dan m mencocokkan setiap baris log yang diawali Error:, ERROR:, atau error:, karena m membuat ^ mencocokkan awal setiap baris.
Pertanyaan yang sering diajukan
Apakah regex saya akan berfungsi sama di Python, PHP, atau Java?
Belum tentu. Alat ini menggunakan mesin JavaScript. Sintaks dasarnya sama, tetapi fitur seperti possessive quantifier, grup atomik, flag inline seperti (?i), dan beberapa escape sequence hanya tersedia di varian lain, dan beberapa fitur memiliki perilaku berbeda. Selalu uji dalam bahasa yang akan digunakan.
Mengapa hanya satu kecocokan yang ditemukan?
Flag g (global) tidak aktif. Tanpanya, JavaScript hanya mengembalikan kecocokan pertama. Centang g untuk menemukan semuanya.
Apakah saya perlu mengetik garis miring di sekitar pola?
Tidak. Masukkan pola saja, misalnya \d+, bukan /\d+/g, lalu pilih flag menggunakan kotak centang. Bentuk literal JavaScript ditampilkan di bawah hasil agar dapat disalin ke kode.
Mengapa halaman menjadi lambat saat saya menggunakan pola ini?
Kuantifier bertingkat seperti (a+)+ atau (.*)* dapat memaksa mesin mencoba jalur dalam jumlah eksponensial saat tidak ada kecocokan. Buat pola lebih spesifik, misalnya ganti .* dengan [^,]*, atau gunakan anchor. Untuk mengurangi dampaknya, penguji membatasi teks hingga 100,000 karakter.
Privasi
Pola dan teks Anda hanya diproses di browser menggunakan mesin JavaScript. Tidak ada yang diunggah, disimpan, atau disertakan dalam analitik.