Konverter Gratis

Penguji Regex

Uji dan debug ekspresi reguler secara instan di browser Anda. Sorot kecocokan, lihat grup tangkap, gunakan mode ganti — gratis dan privat.

//g
Bendera:

Tentang alat ini

Ekspresi reguler adalah bahasa khusus domain untuk mencocokkan pola dalam teks. Mereka telah menjadi bagian dari komputasi sejak tahun 1968 dan sekarang dimasukkan ke dalam setiap bahasa pemrograman modern, editor teks, dan alat pencarian baris perintah. Sintaksnya ringkas namun rawan kesalahan: perubahan kecil menghasilkan perilaku pencocokan yang sedikit berbeda, dan ekspresi kompleks menjadi tidak dapat dibaca dengan cepat. Penguji yang menampilkan kecocokan secara real time saat Anda mengedit pola adalah cara paling efektif untuk mengembangkan dan memverifikasi regex.

Penguji ini berjalan di browser Anda menggunakan mesin regex JavaScript (yang sama dengan yang digunakan aplikasi Anda jika dijalankan di browser). Pola dan teks pengujian diperbarui secara reaktif: setiap perubahan akan menjalankan ulang kecocokan. Grup yang cocok disorot, grup yang diambil dicantumkan, dan bendera (tidak peka huruf besar-kecil, multiline, global) diekspos untuk pengujian.

Sintaks regex sedikit berbeda antar mesin. JavaScript mengikuti spesifikasi ECMAScript; Python, PCRE (digunakan oleh PHP dan banyak lainnya), Java, dan Go masing-masing memiliki dialeknya sendiri dengan fitur yang tumpang tindih namun tidak identik. Pola yang dikembangkan di sini menggunakan sintaks ECMAScript; portabilitas lintas mesin memerlukan pemeriksaan dokumentasi setiap target.

Mengapa Menggunakan Penguji Regex

Bug Regex terkenal sulit untuk di-debug setelah penerapan. Suatu pola yang tampak masuk akal mungkin cocok lebih atau kurang dari yang diharapkan, gagal pada kasus-kasus yang sulit, atau mengalami kemunduran yang sangat besar pada masukan tertentu. Menguji pola secara interaktif terhadap masukan yang representatif menangkap masalah sebelum peninjauan kode dan produksi.

Pola juga mendapat manfaat dari dokumentasi. Menampilkan regex di samping masukan yang harus cocok dan masukan yang tidak cocok membuat maksud menjadi eksplisit. Pengelola masa depan (termasuk Anda dalam enam bulan) lebih menghargai kasus uji yang terdokumentasi daripada menghargai satu kalimat yang cerdas.

Cara menggunakan

Ketik pola, ketik input tes, lihat kecocokan yang disorot secara langsung.

  1. Masukkan pola Anda: Ketik pola regex di bidang pola. Baik bentuk regex literal (/pattern/flags) dan pola saja berfungsi; flag dapat diatur melalui input flags.
  2. Tambahkan masukan tes: Tempelkan contoh teks yang polanya harus cocok (dan idealnya juga teksnya tidak cocok). Penguji menjalankan pola terhadap kecocokan masukan dan sorotan.
  3. Tetapkan bendera: Bendera umum: g (global, temukan semua kecocokan), i (tidak peka huruf besar-kecil), m (multiline, ^ dan $ garis kecocokan dimulai/berakhir), s (dotall, .cocok dengan baris baru), u (Unicode).
  4. Periksa hasilnya: Setiap kecocokan disorot dalam masukan. Grup tangkapan muncul dalam daftar dengan indeks dan nilai grup. Penguji juga menunjukkan jumlah kecocokan dan kesalahan kompilasi apa pun dalam pola tersebut.

Kasus Penggunaan Umum

Detail Teknis

Regex JavaScript mengikuti spesifikasi ECMAScript. Fitur utama: kelas karakter ([abc], [^abc]), bilangan (*, +, ?, {n,m}), pergantian (|), pengelompokan ((...)), grup penangkap dan non-penangkap, melihat ke depan dan ke belakang (mesin modern), referensi balik, grup bernama, pelolosan properti Unicode (dengan tanda u), dan kumpulan rangkaian pelolosan standar.

Perbedaan penting dari PCRE dan Python: dukungan lookbehind terbaru di JavaScript (2018+); grup bernama menggunakan sintaksis (?<nama>...); beberapa pelolosan Unicode memerlukan tanda u agar berfungsi dengan benar. Pola yang dimaksudkan untuk penggunaan lintas bahasa harus diperiksa berdasarkan dokumentasi masing-masing target.

Performa: mesin regex berbasis penelusuran mundur (sebagian besar termasuk JavaScript) dapat mengalami kemunduran yang sangat besar pada pola patologis tertentu. Pengujian yang menggantungkan penguji merupakan tanda bahwa pola tersebut memerlukan penyederhanaan — biasanya dengan menghindari bilangan bertingkat dan pergantian yang ambigu.

Praktik Terbaik

Pertanyaan yang sering diajukan

Varian regex manakah yang didukung alat ini?
Ia menggunakan mesin RegExp bawaan JavaScript, yang mendukung sintaksis standar termasuk lookaheads, lookbehinds (di browser modern), grup tangkapan bernama, dan pelolosan properti Unicode.
Bisakah saya menguji penggantian regex?
Ya. Beralih ke mode Ganti untuk memasukkan pola pengganti. Anda dapat menggunakan $1, $2, dll. untuk mengambil referensi kembali grup, dan $<name> untuk grup bernama.
Mengapa regex saya cocok secara berbeda di sini dibandingkan di Python/PHP?
Bahasa pemrograman yang berbeda memiliki mesin regex yang sedikit berbeda. JavaScript tidak mendukung bilangan posesif atau beberapa fitur khusus PCRE. Sintaks inti (kelas karakter, bilangan, grup) sama di semua bahasa.
Apakah alat ini menyimpan pola regex saya?
Tidak. Tidak ada yang disimpan atau dikirimkan. Alat ini sepenuhnya berjalan di browser Anda. Anda dapat menandai atau berbagi pola dengan menyalin string regex.
Bagaimana cara mencocokkan karakter khusus literal?
Hindari dengan garis miring terbalik. Untuk mencocokkan titik literal: \. Untuk mencocokkan garis miring terbalik literal: \\. Di dalam kelas karakter [...], sebagian besar karakter khusus kehilangan maknanya.
Apakah penguji berjalan di server?
Tidak. Kompilasi dan pencocokan pola terjadi di browser Anda menggunakan objek RegExp asli.
Bisakah saya menguji pola untuk mesin non-JavaScript?
Sebagian besar. Untuk pola sederhana, mesin-mesin utama setuju. Untuk fitur lanjutan (lihat ke belakang, grup atom, bilangan posesif, pelolosan properti Unicode), konfirmasikan dengan dokumentasi mesin target.
Apakah ini menangani input yang sangat besar?
Hingga beberapa megabyte berfungsi dengan lancar. Input yang lebih besar dapat memperlambat atau menghentikan browser, terutama dengan pola yang rentan terhadap kemunduran.