Regex Penguji
Uji dan nyahpepijat ungkapan biasa serta-merta dalam penyemak imbas anda. Serlahkan padanan, lihat kumpulan tangkapan dan gunakan mod ganti — percuma dan peribadi.
Uji dan nyahpepijat ungkapan biasa serta-merta dalam penyemak imbas anda. Serlahkan padanan, lihat kumpulan tangkapan dan gunakan mod ganti — percuma dan peribadi.
Ungkapan biasa ialah bahasa khusus domain untuk memadankan corak dalam teks. Mereka telah menjadi sebahagian daripada pengkomputeran sejak 1968 dan kini terbina dalam setiap bahasa pengaturcaraan moden, editor teks dan alat carian baris arahan. Sintaksnya ringkas tetapi terdedah kepada ralat: perubahan kecil menghasilkan gelagat padanan yang berbeza secara halus, dan ungkapan kompleks menjadi tidak boleh dibaca dengan cepat. Penguji yang menunjukkan padanan dalam masa nyata semasa anda mengedit corak ialah cara paling berkesan untuk membangun dan mengesahkan regex.
Penguji ini berjalan dalam penyemak imbas anda menggunakan enjin regex JavaScript (yang sama yang digunakan oleh aplikasi anda jika ia berjalan dalam penyemak imbas). Kemas kini corak dan teks ujian secara reaktif: setiap perubahan sama ada menjalankan semula perlawanan. Kumpulan padanan diserlahkan, kumpulan yang ditangkap disenaraikan dan bendera (tidak peka huruf besar-besaran, berbilang baris, global) didedahkan untuk ujian.
Sintaks regex berbeza secara halus antara enjin. JavaScript mengikut spesifikasi ECMAScript; Python, PCRE (digunakan oleh PHP dan banyak lagi), Java, dan Go masing-masing mempunyai dialek mereka sendiri dengan ciri yang bertindih tetapi tidak serupa. Corak yang dibangunkan di sini menggunakan sintaks ECMAScript; mudah alih enjin silang memerlukan menyemak dokumentasi setiap sasaran.
Pepijat regex terkenal sukar untuk nyahpepijat selepas penggunaan. Corak yang kelihatan munasabah mungkin sepadan dengan lebih atau kurang daripada yang dimaksudkan, gagal pada kes tepi atau mempunyai penjejakan ke belakang bencana pada input tertentu. Menguji corak secara interaktif terhadap input perwakilan menangkap isu sebelum semakan dan pengeluaran kod.
Corak juga mendapat manfaat daripada dokumentasi. Menunjukkan regex bersebelahan dengan input yang sepatutnya dipadankan dan input yang tidak sepadan menjadikan niat menjadi jelas. Penyelenggara masa depan (termasuk diri anda dalam enam bulan) menghargai kes ujian yang didokumenkan lebih daripada mereka menghargai satu baris yang bijak.
Taip corak, taip input ujian, lihat padanan yang diserlahkan secara langsung.
Regex JavaScript mengikut spesifikasi ECMAScript. Ciri utama: kelas aksara ([abc], [^abc]), pengkuantiti (*, +, ?, {n,m}), selang seli (|), pengelompokan ((...)), kumpulan penangkapan dan bukan penangkapan, pandang ke hadapan dan pandang belakang (enjin moden), rujukan belakang, kumpulan yang dinamakan, pelepasan sifat Unicode (dengan bendera u) dan set jujukan standard.
Perbezaan penting daripada PCRE dan Python: lihat belakang sokongan adalah terkini dalam JavaScript (2018+); kumpulan yang dinamakan menggunakan (?<nama>...) sintaks; sesetengah Unicode melarikan diri memerlukan bendera u berfungsi dengan betul. Corak yang dimaksudkan untuk penggunaan merentas bahasa hendaklah disemak pada setiap dokumentasi sasaran.
Prestasi: enjin regex berasaskan penjejakan belakang (kebanyakan termasuk JavaScript) boleh mengalami penjejakan ke belakang bencana pada corak patologi tertentu. Ujian yang menggantung penguji adalah tanda bahawa corak memerlukan pemudahan — lazimnya dengan mengelakkan pengkuantiti bersarang dan silih berganti yang tidak jelas.