Penguji Regex
Uji ekspresi reguler terhadap teks Anda sendiri dan lihat setiap kecocokan beserta posisi dan grup tangkapannya. Beralih ke mode ganti untuk menulis ulang
Ketik sebuah pola, tempelkan teks Anda, lalu lihat setiap kecocokan disorot beserta posisi dan grup tangkapannya. Beralih ke mode ganti untuk menulis ulang teks dengan substitusi, atau ke mode ekstrak untuk mengambil satu grup tangkapan baris demi baris - cara tercepat untuk memeriksa sebuah pola sebelum dipakai di dalam kode.
Mesinnya adalah varian ekspresi reguler JavaScript yang dipakai browser, jadi hasilnya sama dengan yang Anda dapatkan di Node atau di konsol browser, termasuk grup bernama, lookahead, dan kuantifier malas. Flag untuk pencocokan global, tidak peka huruf besar-kecil, multi-baris, dot-all, dan unicode semuanya tersedia, dan pola yang macet akan dihentikan alih-alih membekukan tab.
Cara menguji ekspresi reguler
Masukkan polanya dan atur flag-nya
Tempelkan teks yang akan diuji
Baca kecocokannya, atau pakai mode ganti dan ekstrak
FAQ
Varian regex apa yang dipakai?
JavaScript (ECMAScript), mesin yang sama dengan browser dan Node.js Anda. Pola yang ditulis untuk PCRE, Python, atau Java mungkin perlu penyesuaian kecil - kuantifier posesif dan rekursi bukan bagian dari varian ini.
Mengapa pola saya macet atau berhenti?
Backtracking katastrofik, biasanya dari kuantifier bersarang seperti (a+)+ yang diuji pada string panjang yang tidak cocok. Alat ini berhenti setelah sejumlah iterasi tetap untuk melindungi tab; sederhanakan polanya atau tambatkan (anchor).
Bagaimana cara mengganti teks?
Beralih ke mode ganti lalu masukkan substitusinya. $1, $2, atau $<name> menyisipkan grup tangkapan, sehingga Anda bisa memformat ulang tanggal, menukar bidang, atau merapikan log.
Apa fungsi mode ekstrak?
Mode itu mengeluarkan satu grup tangkapan per baris alih-alih seluruh kecocokan, dan itulah yang Anda butuhkan saat mengambil alamat email, URL, atau ID dari gumpalan teks.
Apakah baris baru berfungsi di pola saya?
Hanya dengan flag multi-baris atau dot-all. Secara default titik tidak cocok dengan baris baru, dan itu penyebab umum sebuah pola berhasil pada satu baris tetapi gagal pada satu paragraf.
Apakah teks saya diunggah?
Tidak, pencocokannya berjalan lokal - berguna ketika teksnya memuat data log atau informasi pelanggan yang nyata.
Sekilas
| Masukan | teks |
|---|---|
| Beberapa file | Tidak |
| Dijalankan di | Di browser Anda - file tidak pernah diunggah |
| Bekerja offline | Ya — setelah halaman dimuat |
| Harga | Gratis, tanpa pendaftaran, tanpa tanda air |
Di mana konversi diam-diam rusak
Sebagian besar bug konversi bukan soal sintaksis, melainkan soal makna. Kolom kode pos pada CSV kehilangan angka nol di depannya begitu spreadsheet menduga kolom itu berisi angka; ID yang panjang melampaui presisi floating-point; tanggal berubah makna tergantung apakah formatnya tanggal-dulu atau bulan-dulu. Kunci JSON tidak berurutan, sedangkan array berurutan, dan alat yang mengurutkan kunci tidak mengubah apa pun sementara alat yang mengurutkan array mengubah datanya. Unicode adalah jebakan lain: teks bisa datang sebagai UTF-8, UTF-16, atau dengan BOM, dan dekoder yang salah menebak mengubah karakter beraksen menjadi mojibake. Sebelum memercayai konversi apa pun, periksa sekilas baris pertama dan terakhir, setiap bidang yang memiliki angka nol di depan, dan setiap bidang yang memuat tanda kutip, koma, atau baris baru.
Memilih format data
JSON adalah pilihan default untuk apa pun yang dikembalikan sebuah API atau dibaca sebuah program: format ini secara alami menangani struktur bersarang, angka, boolean, dan null, dan setiap bahasa bisa mengurainya. CSV lebih kecil dan langsung terbuka di spreadsheet, tetapi tidak punya cara untuk menyatakan penyarangan dan tidak punya standar bersama untuk pemisah, tanda kutip, atau set karakternya - dan di situlah konversi biasanya salah. XML lebih bertele-tele, tetapi membawa atribut, konten campuran, dan skema, sehingga masih mendominasi format dokumen dan integrasi warisan. YAML paling mudah dibaca untuk konfigurasi, tetapi peka terhadap spasi dan punya pemaksaan tipe yang mengejutkan ("no" menjadi false, versi seperti 1.10 menjadi 1.1). Pilih format yang disukai alat yang akan memakainya, bukan format yang terlihat paling bagus.