Penguji Regex

/ /

Ketik sebuah ekspresi reguler, tempel teks untuk mengujinya, dan penguji menjalankan pola serta mendaftar setiap kecocokan yang ditemukan. Setiap hasil menunjukkan di mana kecocokan dimulai dan isi setiap grup tangkapan, sehingga Anda melihat persis apa yang ditangkap pola. Aktifkan flag tidak peka huruf besar-kecil, multibaris, dan dotall untuk mengubah perilaku pola.

Cara menguji regex

  1. 1

    Masukkan pola Anda

    Ketik ekspresi tanpa pembatas; penguji membungkusnya dengan `/ /` untuk Anda. Pola yang tidak valid menampilkan pesan kesalahan yang jelas alih-alih gagal diam-diam.

  2. 2

    Pilih flag

    Aktifkan `i` (tidak peka huruf besar-kecil), `m` (multibaris), atau `s` (dotall) untuk mencocokkan sesuai kebutuhan Anda.

  3. 3

    Tempel teks uji

    Tambahkan teks yang ingin Anda cari. Penguji menelusuri seluruhnya dan menemukan setiap kecocokan, bukan hanya yang pertama.

  4. 4

    Periksa kecocokan

    Setiap kecocokan menunjukkan posisinya (offset) dalam teks, kecocokan penuh, dan setiap grup tangkapan bernomor.

Apa yang ditunjukkan penguji

Menjalankan pola di kepala, atau dengan grep cepat, memberi tahu apakah sesuatu cocok. Penguji juga menunjukkan:

  • Setiap kecocokan, beserta posisinya. Ia selalu menelusuri seluruh teks dan melaporkan setiap kecocokan dengan offset karakter tempat kecocokan itu dimulai.
  • Grup mana menangkap apa. Setiap kecocokan dipecah menjadi kecocokan penuh dan grup tangkapan bernomor, sehingga Anda dapat memastikan sebuah (...) menangkap bagian yang Anda harapkan.
  • Apa yang diubah flag. Aktifkan i, m, atau s lalu uji lagi untuk melihat bagaimana pencocokan tanpa peka huruf besar-kecil, multibaris, atau dotall mengubah hasilnya.

Flag, secara ringkas

Flag Nama Apa yang diubah
i Tidak peka huruf besar-kecil A juga cocok dengan a, dan sebaliknya
m Multibaris ^ dan $ cocok di awal dan akhir setiap baris, bukan hanya seluruh teks
s Dotall . juga cocok dengan karakter baris baru

Pencocokan selalu global: penguji mengembalikan setiap kecocokan dalam teks, jadi tidak ada flag “global” terpisah yang perlu diatur. Pola dijalankan pada mesin PCRE dengan dukungan Unicode, sehingga kelas seperti \w dan \d berperilaku konsisten pada teks internasional.

Masalah regex umum yang dibantu ditemukan oleh ini

Gejala Penyebab lazim
Satu kecocokan raksasa yang mencakup segalanya .* rakus; gunakan .*? atau kelas ternegasi seperti [^"]*
^ atau $ cocok hanya sekali Flag m hilang pada teks multibaris
. berhenti di baris baru Flag s hilang
Grup tangkapan dalam urutan tak terduga ( bersarang menggeser nomor grup; hitung dari kiri ke kanan
Pola berjalan lambat * atau + bersarang di atas alternatif yang tumpang tindih menyebabkan banyak backtracking

Kiat untuk pola yang lebih cepat dan aman

  • Jangkarkan dengan ^ saat kecocokan mulai dari awal, agar mesin tidak menelusuri seluruh string.
  • Utamakan kelas karakter ([abc]) daripada alternasi (a|b|c); kelas lebih cepat di setiap mesin besar.
  • Ganti .* yang rakus dengan kelas ternegasi seperti [^"]* saat Anda tahu karakter penutupnya, agar tidak ada backtracking.

Pertanyaan yang Sering Diajukan

Ia menjalankan pola Anda dengan PCRE, mesin yang tertanam dalam PHP, dengan mode Unicode aktif. Sintaks khusus PCRE, seperti \d, \b, dan lookaround, bekerja seperti yang diharapkan. Jika Anda akan menerapkan pola di JavaScript, Python, atau bahasa lain, periksa perbedaan sintaks kecil sebelum merilisnya.

Setiap kecocokan. Penguji selalu menelusuri seluruh teks, jadi tidak ada flag “global” terpisah yang perlu diatur. Setiap kecocokan didaftar beserta posisinya dalam teks.

Bisa. Setiap kecocokan dipecah menjadi kecocokan penuh dan setiap grup tangkapan bernomor, sehingga Anda dapat memastikan bagian teks mana yang ditangkap oleh setiap (...).

i membuat pencocokan tidak peka huruf besar-kecil, m membuat ^ dan $ cocok di setiap batas baris, dan s membuat . cocok dengan karakter baris baru. Aktifkan atau nonaktifkan lalu uji lagi untuk membandingkan hasilnya.

Penguji menampilkan pesan kesalahan yang jelas yang menjelaskan masalahnya, seperti tanda kurung yang tidak tertutup atau grup yang tidak selesai, alih-alih diam-diam mengembalikan nol kecocokan.

Alat Terkait

Alat ini tersedia dalam bahasa lain