Cara menggunakannya
- Taip ungkapan biasa dalam medan Corak, tanpa garis condong di sekelilingnya.
- Tandakan bendera yang anda perlukan. g (global) mencari setiap padanan, bukan hanya yang pertama.
- Tampal teks yang ingin dicari. Padanan diserlahkan, dan setiap satu disenaraikan dengan indeks dan kumpulan tangkapannya.
- Anda juga boleh memasukkan pengganti seperti $2-$1 untuk pratonton hasil String.replace.
Cara ia berfungsi
Penguji menjalankan corak anda dengan objek RegExp terbina dalam pelayar, jadi hasilnya tepat seperti yang akan dihasilkan oleh kod JavaScript (ECMAScript) dalam pelayar tersebut. Bahasa lain menggunakan varian regex yang berbeza: PCRE (PHP), modul re Python, Java dan .NET menyokong ciri yang tiada dalam JavaScript, seperti pengkuantiti posesif (a++), kumpulan atomik ((?>…)), pengubah suai sebaris seperti (?i) dan rekursi, dan berbeza dalam butiran seperti penambat \A dan \Z. Uji corak dalam bahasanya sendiri sebelum bergantung padanya di sana. Lookbehind ((?<=…)), kumpulan bernama ((?<name>…)) dan escape sifat Unicode (\p{L} dengan bendera u) berfungsi dalam semua pelayar semasa.
Tanpa bendera g atau y, hanya padanan pertama ditemui, sama seperti RegExp.exec. Padanan panjang sifar, contohnya ^ atau \b, disenaraikan tetapi tidak diserlahkan; selepas satu padanan, carian bergerak ke hadapan satu aksara (satu titik kod dengan bendera u), seperti yang dilakukan oleh String.matchAll. Kumpulan tangkapan dipaparkan mengikut nombor dan, jika ditakrifkan, mengikut nama; kumpulan yang tidak mengambil bahagian dalam padanan ditandakan sebagai tiada nilai, yang berbeza daripada padanan kosong.
Sesetengah corak, seperti (a+)+$ pada baris panjang tanpa padanan, mengambil masa eksponen untuk gagal (jejak balik katastrofik). Untuk mengurangkan risiko, padanan bermula seketika selepas anda berhenti menaip, hanya 100,000 aksara pertama teks dicari, dan paling banyak 1,000 padanan dikumpulkan. Corak patologi masih boleh menyebabkan tab tidak responsif buat seketika; jika itu berlaku, permudahkan corak atau pendekkan teks.
Contoh
Mengekstrak tarikh
Corak (\d{4})-(\d{2})-(\d{2}) dengan bendera g pada “Due 2026-03-15, paid 2026-04-02” menemui dua padanan. Kumpulan 1 ialah tahun; penggantian $3.$2.$1 menukar teks itu menjadi “Due 15.03.2026, paid 02.04.2026”.
Kumpulan bernama untuk kod mudah dibaca
Pada rentetan pertanyaan a=1&b=two, (?<key>\w+)=(?<value>[^&]*) menyenaraikan kunci dan nilai bagi setiap pasangan, iaitu sepadan dengan apa yang dipulangkan oleh match.groups.key dan match.groups.value dalam JavaScript.
Carian tidak peka huruf merentas baris
^error:.* dengan bendera g, i dan m memadankan setiap baris log yang bermula dengan Error:, ERROR: atau error:, kerana m menjadikan ^ padan pada permulaan setiap baris.
Soalan Lazim
Adakah regex saya akan berfungsi sama dalam Python, PHP atau Java?
Tidak semestinya. Alat ini menggunakan enjin JavaScript. Sintaks asas adalah sama, tetapi ciri seperti pengkuantiti posesif, kumpulan atomik, bendera sebaris seperti (?i), dan beberapa jujukan escape hanya wujud dalam varian lain, dan ada beberapa yang berkelakuan berbeza. Sentiasa uji dalam bahasa sasaran.
Mengapa hanya satu padanan ditemui?
Bendera g (global) dimatikan. Tanpanya, JavaScript hanya mengembalikan padanan pertama. Tandakan g untuk mencari semua padanan.
Perlukah saya menaip garis condong di sekeliling corak?
Tidak. Masukkan corak sahaja, contohnya \d+ dan bukannya /\d+/g, kemudian pilih bendera dengan kotak semak. Bentuk literal JavaScript dipaparkan di bawah hasil untuk disalin ke dalam kod.
Mengapa halaman menjadi perlahan dengan corak saya?
Pengkuantiti bersarang seperti (a+)+ atau (.*)* boleh memaksa enjin mencuba bilangan laluan secara eksponen apabila tiada padanan wujud. Jadikan corak lebih spesifik, contohnya dengan menggantikan .* dengan [^,]*, atau gunakan penambat. Penguji ini mengehadkan teks kepada 100,000 aksara untuk mengurangkan kesannya.
Privasi
Corak dan teks anda diproses hanya dalam pelayar anda oleh enjin JavaScriptnya. Tiada apa-apa dimuat naik, disimpan atau disertakan dalam analitik.