Penguji Regex
Penguji menjalankan corak anda dalam enjin RegExp JavaScript pelayar anda, jadi keputusan sama seperti yang dilihat kod JavaScript anda sendiri. Taip corak tanpa garis condong, seperti \d{3}-\d{4}, dan gunakan bendera g untuk mencari setiap padanan.
Cara guna
- Taip corak anda tanpa garis condong di sekelilingnya, contohnya \d{3}-\d{4}.
- Hidupkan atau matikan bendera. Bendera g mencari setiap padanan; tanpanya hanya padanan pertama dipaparkan.
- Tampal teks yang hendak dicari. Padanan diserlahkan semasa anda menaip, dan jadual menyenaraikan setiap padanan dengan kumpulan tangkapannya.
Cara kiraan
Corak dikompil dengan enjin RegExp JavaScript yang terbina dalam pelayar anda, jadi sintaks dan tingkah lakunya sama seperti yang dilihat kod JavaScript anda sendiri. Dialek lain seperti PCRE, Python atau .NET berbeza di beberapa tempat, contohnya sokongan lookbehind pada enjin lama dan pengkuantiti possessive yang tiada dalam JavaScript.
Dengan bendera g, penguji memanggil exec berulang kali dan mengumpul sehingga 1,000 padanan. Apabila padanan kosong, seperti dengan a* atau lookahead, kedudukan carian bergerak ke hadapan satu aksara supaya gelung sentiasa tamat.
Pemadanan berjalan dalam worker latar belakang. Jika corak mengambil masa lebih daripada 1.5 saat, contohnya akibat backtracking bencana seperti (a+)+$, worker dihentikan dan anda melihat mesej tamat masa dan bukan halaman yang beku.
Lembaran rujukan regex
| Token | Maksud |
|---|---|
| . | Mana-mana aksara kecuali baris baharu (mana-mana aksara dengan bendera s) |
| \d \w \s | Digit, aksara perkataan (huruf, digit, garis bawah), ruang kosong |
| \D \W \S | Bertentangan dengan \d, \w dan \s |
| [abc] [^abc] [a-z] | Salah satu daripada a, b atau c; apa-apa selain a, b atau c; satu julat |
| ^ $ | Permulaan dan penghujung teks (setiap baris dengan bendera m) |
| \b | Sempadan perkataan |
| * + ? | Sifar atau lebih, satu atau lebih, sifar atau satu |
| {3} {2,5} {2,} | Tepat 3, antara 2 dan 5, 2 atau lebih |
| *? +? | Versi malas yang memadankan sesedikit mungkin |
| (abc) (?:abc) | Kumpulan tangkapan, kumpulan tanpa tangkapan |
| (?<name>abc) | Kumpulan tangkapan bernama |
| a|b | a atau b |
| (?=x) (?!x) | Diikuti oleh x, tidak diikuti oleh x |
| (?<=x) (?<!x) | Didahului oleh x, tidak didahului oleh x |
| \1 \k<name> | Rujukan balik kepada kumpulan 1 atau kumpulan bernama |
Bendera
| Bendera | Kesan |
|---|---|
| g | Global: cari semua padanan dan bukan yang pertama sahaja |
| i | Abaikan huruf besar kecil |
| m | Berbilang baris: ^ dan $ sepadan pada baris baharu |
| s | Dot all: . turut memadankan baris baharu |
| u | Unicode: anggap pasangan pengganti sebagai satu aksara dan hidupkan \p{...} |
| y | Melekat: setiap padanan mesti bermula tepat di tempat padanan terakhir berakhir |
Soalan lazim
Perisa regex yang manakah digunakan di sini?
JavaScript, seperti yang dilaksanakan oleh pelayar anda. Corak yang berfungsi di sini akan berfungsi sama dengan new RegExp dalam kod JavaScript atau TypeScript anda sendiri.
Mengapa saya hanya nampak satu padanan?
Tanpa bendera g (global), regex JavaScript berhenti pada padanan pertama. Hidupkan g untuk mencari semuanya.
Mengapa corak saya tamat masa?
Pengkuantiti bersarang seperti (a+)+ atau (.*)* boleh menyebabkan enjin mencuba laluan secara eksponen pada teks yang hampir sepadan. Jadikan bahagian dalam lebih khusus atau buang sarangan itu.
Adakah teks saya dihantar ke mana-mana?
Tidak. Corak dan teks diproses sepenuhnya dalam pelayar anda dan tidak pernah dihantar ke pelayan.