Bahasa: Bahasa Indonesia

tools / regex

regex/

Penguji regex JavaScript langsung: menyorot kecocokan, menampilkan daftar capture group, dan mempratinjau penggantian.

Preset

Teks uji

Kecocokan yang disorot


      

Daftar kecocokan

#PosisiKecocokanGrup

Ganti

Pertanyaan umum

Mesin regex apa yang dipakai, dan apakah sama dengan Python atau PCRE?

Memakai mesin regex JavaScript bawaan browser Anda, jadi sintaksnya sedikit berbeda dari Python, PCRE, dan Java. Named group ditulis (?<name>...) dan bukan (?P<name>...) ala Python; inline flag seperti (?i) di awal tidak didukung, jadi centang flag i; possessive quantifier dan atomic group juga tidak ada. Apakah sintaks yang lebih baru seperti lookbehind bisa dipakai bergantung pada browser Anda.

Mengapa regex yang saya salin dari kode tidak cocok?

Kemungkinan besar garis miring di kedua sisi, flag di akhir, atau backslash untuk escape ikut tersalin. Di kotak pola, ketik hanya yang berada di antara kedua garis miring, dan centang flag seperti g dan i di sebelah kanan. Jika Anda menyalin dari string JavaScript, ubah \\d+ menjadi \d+, karena kotak ini tidak memerlukan backslash di-escape dua kali.

Mengapa hanya satu kecocokan, atau mengapa ., ^, dan $ berperilaku aneh?

Periksa dulu flag di samping kotak pola. Tanpa g, hanya kecocokan pertama yang diambil, dan header daftar menyebutkannya. Titik tidak cocok dengan pemisah baris kecuali Anda mencentang s; ^ dan $ hanya cocok dengan awal dan akhir seluruh teks kecuali Anda mencentang m untuk pencocokan per baris. y adalah mode sticky: kecocokan harus dimulai dari awal dan berurutan tanpa celah, jadi jarang diperlukan.

Apa yang harus dilakukan jika muncul pesan "Pencocokan memakan waktu lebih dari 1.5 detik dan dihentikan"?

Artinya regex ini melakukan backtracking terlalu banyak pada teks Anda dan perlu ditulis ulang. Contoh khasnya adalah quantifier bersarang seperti (a+)+, yang waktu prosesnya berlipat ganda pada teks panjang yang tidak cocok. Halaman menjalankan regex di thread latar belakang dan menghentikannya setelah 1,5 detik, sehingga halaman itu sendiri tidak pernah membeku. Menulis quantifier secara spesifik, menghilangkan sarang, atau memakai rentang karakter yang lebih sempit biasanya menyelesaikannya.

Apa yang terjadi jika kecocokannya banyak atau teksnya sangat panjang?

Sorotan dan daftar menampilkan paling banyak 1000 kecocokan pertama dan memberi tahu jika ada lebih banyak; hasil penggantian tidak terpengaruh batas itu. Jika teks lebih panjang dari 200.000 karakter, halaman menunggu sampai Anda berhenti mengetik sekitar 0,4 detik sebelum menghitung ulang. Tidak ada batas panjang lain, jadi kecepatan sebagian besar bergantung pada regex itu sendiri.

Bagaimana menulis templat pengganti?

Mengikuti sintaks pengganti JavaScript: $1 dan $2 adalah capture group bernomor, $<name> adalah named group, $& adalah seluruh kecocokan, dan $$ adalah tanda dolar literal. Kosongkan templat untuk menghapus semua yang cocok. Tanpa flag g, hanya kecocokan pertama yang diganti.

Bisakah preset bawaan nomor ponsel dan kartu identitas dipakai apa adanya untuk validasi?

Anggap itu titik awal, bukan validasi yang ketat. Preset ponsel menerima 11 digit yang diawali 1 dengan digit kedua 3 sampai 9, dan tidak menangani kode negara. Preset ID hanya memeriksa format 18 karakter: hari 01 sampai 31 diterima untuk setiap bulan, digit pemeriksa terakhir tidak diverifikasi, dan kode wilayah tidak dicocokkan dengan wilayah sebenarnya. Preset email dan URL hanya mencakup bentuk umum, dan preset URL hanya menerima http dan https. Mengklik preset mengganti pola di kotak dan mengatur ulang flag menjadi hanya g.

Apakah teks yang saya masukkan diunggah?

Tidak. Regex berjalan di thread latar belakang browser Anda, dan teks uji, pola, serta templat pengganti tidak pernah dikirim ke server. Halaman ini juga tidak menyimpan input Anda.