Regex tester

Berjalan di browser Anda; tidak ada yang diunggah

Uji regular expression JavaScript pada teks Anda, lengkap dengan capture group dan penggantian.

Test text

Type a pattern

Matches are listed here with their position and capture groups. Patterns use JavaScript's RegExp, as in browsers and Node.js; type them without the surrounding slashes.
Type a pattern
/gLn 1, Col 1

Apa itu regular expression?

Regular expression, atau regex, adalah pola yang mendeskripsikan sekumpulan string. \d{3} berarti tiga digit, [a-z]+ satu atau lebih huruf kecil, dan ^ serta $ menambatkan kecocokan ke awal dan akhir. Program memakai pola untuk mencari, mengambil, memvalidasi, dan mengganti teks.

Bagian pola di dalam tanda kurung adalah capture group. Pada (\d{4})-(\d{2}) yang dicocokkan dengan 2025-07, group 1 adalah 2025 dan group 2 adalah 07. Named group seperti (?<year>\d{4}) memungkinkan Anda merujuk bagian berdasarkan nama. Flag mengubah perilaku seluruh pola: i mengabaikan huruf besar-kecil dan g menemukan semua kecocokan, bukan hanya yang pertama.

Tester ini menjalankan RegExp milik JavaScript, mesin yang ada di browser dan Node.js, jadi pola yang berfungsi di sini akan berfungsi sama di JavaScript dan TypeScript. Bahasa lain berbagi sebagian besar sintaksnya, tetapi tidak semuanya; pertanyaan di bawah mencantumkan perbedaan yang paling sering muncul.

Cara memakai tool ini

  1. 1Ketik pola di kotak di antara garis miring, tanpa garis miringnya. Presets memuat pola beserta teks contohnya.
  2. 2Nyalakan dan matikan flag di toolbar: g global, i abaikan huruf besar-kecil, m multiline, s dotAll, u dan v mode Unicode, y sticky, dan d indeks group. Arahkan kursor ke flag untuk melihat fungsinya.
  3. 3Tempel teks yang ingin dicari ke Test text, atau seret file ke sana. Kecocokan disorot saat Anda mengetik dan didaftar di Matches dengan baris, kolom, dan capture group-nya.
  4. 4Klik sebuah kecocokan, atau tekan Enter di kotak pola (F7 di tempat lain), untuk memilihnya di teks dan melihat group-nya disorot. Shift+Enter atau Shift+F7 kembali ke sebelumnya.
  5. 5Buka Replace untuk mencoba penggantian seperti $2/$1 atau $<year> dan melihat hasilnya. Apply to test text menuliskannya ke teks; Ctrl+Z membatalkannya.

Pemecahan masalah

Dihentikan setelah 2 detik
Pola ini mengalami catastrophic backtracking pada teks ini: quantifier bersarang seperti (a+)+ atau (.*,)* mencoba cara mencocokkan yang jumlahnya eksponensial sebelum gagal. Buat setiap bagian yang berulang hanya bisa cocok dengan satu cara, misalnya [^,]* alih-alih .*. Pola yang sama bisa membekukan server, itulah sebabnya pola ini dihentikan di sini.
Pola berfungsi di kode tapi tidak di sini, atau sebaliknya
Di string literal dalam kode, setiap backslash ditulis dua kali ("\\d+"). Di sini Anda mengetik polanya langsung, dengan backslash tunggal (\d+), seperti di antara garis miring pada /\d+/.
Hanya satu kecocokan yang ditemukan
Flag g mati. Tanpa flag itu, pencarian berhenti setelah kecocokan pertama, dan Replace hanya mengganti yang pertama.
^ atau $ hanya cocok sekali
Tanpa flag m, keduanya hanya cocok di awal dan akhir seluruh teks. Nyalakan m agar cocok di setiap baris.
Escape atau group tidak valid dengan flag u
Mode Unicode lebih ketat: escape yang tidak bermakna, seperti \- di luar character class, menjadi error. Hapus backslash-nya, atau matikan u.

Pertanyaan umum

Apa beda regex JavaScript dengan PCRE, Python, atau Java?

JavaScript tidak punya possessive quantifier (a++) atau atomic group ((?>…)), tidak punya \A dan \Z (gunakan ^ dan $ tanpa flag m), dan tidak mendukung (?i) di awal pola: atur flag lewat tombol sebagai gantinya. Python menulis named group sebagai (?P<name>…), sedangkan JavaScript menulis (?<name>…). Lookbehind, named group, dan escape properti Unicode seperti \p{L} (dengan u atau v) didukung di browser saat ini.

Apa beda flag m dan s?

m (multiline) membuat ^ dan $ cocok di awal dan akhir setiap baris. s (dotAll) membuat . juga cocok dengan baris baru; tanpa flag itu, . cocok dengan karakter apa pun kecuali baris baru.

Apakah preset email adalah validator email yang lengkap?

Bukan. Preset itu menemukan bentuk umum name@domain.tld di dalam teks, yang biasanya Anda perlukan saat mencari di log atau response. Standar alamat email yang lengkap mengizinkan jauh lebih banyak bentuk. Untuk memvalidasi alamat, cek bentuk dasarnya lalu kirim email konfirmasi.

Apakah teks saya dikirim ke server?

Tidak. Pencocokan berjalan di browser Anda, di worker latar belakang halaman ini, dan tidak ada yang diunggah. Agar tidak hilang saat reload, pola dan teks disimpan di session storage tab ini sampai Anda menghapusnya atau menutup tab. Copy link menaruh input di link setelah tanda #, bagian yang tidak pernah dikirim browser ke server, tetapi siapa pun yang Anda beri link bisa membacanya.