ESC

Penguji Ungkapan Nalar

/ / g

Corak Pantas

Statistik

Jumlah Padanan 0
Kumpulan 0
Masa Pelaksanaan 0ms
Semua pemprosesan regex berlaku dalam pelayar anda. Tiada data dihantar ke mana-mana pelayan.

0

Jumlah Padanan

0

Kumpulan

0ms

Masa Pelaksanaan

Contoh Penggunaan

Pengesahan E-mel

Sahkan dan ekstrak alamat e-mel daripada teks menggunakan corak regex.

/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g
Pengekstrakan URL

Cari dan ekstrak URL daripada sebarang kandungan teks menggunakan ungkapan nalar.

/https?:\/\/[\w\-]+(\.[\w\-]+)+/g
Penghuraian Nombor Telefon

Hurai dan sahkan nombor telefon dalam pelbagai format antarabangsa.

/\+?\d{1,4}[-.\s]?\(?\d{1,3}\)?[-.\s]?\d{1,4}/g

Ciri-ciri

Sorotan Padanan

Sorotan visual semua padanan dalam teks ujian

Bendera Regex

Sokongan untuk bendera global, tidak sensitif huruf, berbilang baris dan dotAll

Corak Pantas

Corak prabina untuk kes penggunaan biasa seperti e-mel, URL, telefon

Butiran Kumpulan

Lihat kumpulan tangkapan dan kumpulan bernama untuk setiap padanan

Statistik

Kiraan padanan, kiraan kumpulan dan metrik masa pelaksanaan

Ujian Masa Nyata

Keputusan dikemas kini secara automatik semasa anda menaip

Pengendalian Ralat

Mesej ralat yang jelas untuk corak regex tidak sah

Privasi

Semua pemprosesan dalam pelayar, tiada data dihantar

Cara Menggunakan?

1

Masukkan Corak

Taip corak ungkapan nalar anda dalam medan input corak.

2

Tetapkan Bendera

Pilih bendera yang sesuai: global, tidak sensitif huruf, berbilang baris, dotAll.

3

Masukkan Teks Ujian

Tampal atau taip teks yang anda mahu uji terhadap corak regex anda.

4

Lihat Keputusan

Lihat padanan yang disorot dan maklumat padanan terperinci termasuk kumpulan.

5

Guna Corak Pantas

Cuba corak prabina untuk tugasan biasa seperti pengesahan e-mel atau URL.

Soalan Lazim

Regular expression adalah urutan aksara yang menentukan corak carian. Anda boleh menggunakannya untuk mencari teks yang sepadan dengan sesuatu corak, mengesahkan bahawa input mematuhi format tertentu, mengekstrak bahagian khusus daripada satu rentetan, atau menggantikan bahagian teks. Contoh: /\d{4}-\d{2}-\d{2}/ sepadan dengan tarikh dalam format YYYY-MM-DD; /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ mengesahkan alamat e-mel; /https?:\/\/[^\s]+/g mencari semua URL dalam blok teks. Regex disokong secara asli dalam JavaScript, Python, PHP, Ruby, Java, Go, dan hampir setiap bahasa pengaturcaraan lain.

g (global): cari semua padanan, bukan sekadar yang pertama. Tanpa g, regex hanya mengembalikan padanan pertama. i (case insensitive): "hello" sepadan dengan "Hello", "HELLO", "hElLo". m (multiline): ^ dan $ sepadan dengan permulaan/penghujung setiap baris dan bukannya seluruh rentetan. Tanpa m, ^ hanya sepadan dengan permulaan input sahaja. s (dotAll / single-line): titik . biasanya sepadan dengan mana-mana aksara kecuali baris baru — dengan s, ia juga sepadan dengan baris baru. Alat ini berasaskan JavaScript, jadi flag yang tersedia adalah yang disokong oleh pelaksanaan RegExp JavaScript.

Numbered capture groups: kurungan () dalam corak anda menangkap teks yang sepadan yang boleh dirujuk melalui indeks: $1, $2, dan lain-lain. Sebagai contoh, (\d{4})-(\d{2})-(\d{2}) pada "2026-03-15" menangkap tahun sebagai kumpulan 1, bulan sebagai kumpulan 2, hari sebagai kumpulan 3. Named capture groups: (?<name>pattern) menetapkan label kepada sesuatu kumpulan, menjadikannya boleh dicapai sebagai match.groups.name dalam JavaScript. Contoh: (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}). Named groups lebih mudah dibaca dan tidak akan rosak apabila anda menambah kumpulan di tempat lain dalam corak tersebut. Non-capturing groups (?:pattern) mengelompokkan tanpa menangkap, berguna apabila anda memerlukan pengelompokan untuk alternatif (a|b) tetapi bukan padanannya.

Punca yang paling biasa: (1) Flag g hilang — tanpa ia, hanya padanan pertama ditemui, dan pengira menunjukkan 1 apabila anda mengharapkan lebih. (2) Aksara khas tidak di-escape — dalam regex, . sepadan dengan mana-mana aksara tetapi \. sepadan dengan titik literal. Begitu juga \( \) untuk kurungan, \[ \] untuk kurungan petak. (3) Penanda yang salah — ^ dan $ tanpa flag m sepadan dengan permulaan/penghujung seluruh rentetan, bukan per baris. (4) Keinginan Quantifier — .* sepadan sebanyak mungkin, sering kali mengambil apa yang anda ingin tangkap. Gunakan .*? untuk non-greedy. (5) Corak memerlukan lebih banyak input daripada yang anda berikan — jalankan semakan kesihatan pantas dengan sub-corak yang lebih mudah.

Catastrophic backtracking berlaku apabila regex dengan quantifier bersarang menyebabkan kompleksiti masa eksponen pada input tertentu. Contoh klasik: (a+)+ yang diterapkan pada "aaaaaab" — enjin akan mencuba setiap cara yang mungkin untuk membahagikan a's di antara kumpulan bersarang sebelum gagal, menyebabkan corak tergantung. Anda boleh mencetuskan ini dalam penguji untuk melihatnya. Pencegahan: elakkan quantifier bersarang pada corak yang bertindih, gunakan possessive quantifiers atau atomic groups jika disokong, dan jadilah spesifik tentang apa yang setiap bahagian sepadan. Jika anda melihat penguji menjadi tidak responsif, corak anda mungkin mempunyai catastrophic backtracking — segarkan halaman dan permudahkan corak tersebut.

Lookaheads dan lookbehinds sepadan dengan sesuatu kedudukan berdasarkan apa yang mendahului atau mengikutinya, tanpa menyertakan konteks tersebut dalam padanan. Positive lookahead (?=...): \w+(?=@) sepadan dengan perkataan sebelum @ tanpa menyertakan @. Negative lookahead (?!...): \d+(?!\.\d) sepadan dengan nombor yang tidak diikuti oleh perpuluhan. Positive lookbehind (?<=...): (?<=\$)\d+ sepadan dengan digit yang didahului oleh $. Negative lookbehind (?<!...): (?<!\d)\d+ sepadan dengan digit yang tidak didahului oleh digit. JavaScript menyokong keempat-empat sejak ES2018, termasuk variable-length lookbehind dalam pelayar moden.

Ya. Alat ini menggunakan enjin RegExp terbina dalam JavaScript, jadi semua corak dan flag adalah khusus untuk JavaScript. Gaya JavaScript sangat menyerupai Perl-compatible regex (PCRE) tetapi mempunyai beberapa perbezaan: tiada possessive quantifiers (sintaks a++), limited lookbehind (variable-length lookbehind ditambah dalam ES2018), dan pengendalian Unicode yang berbeza. Jika anda menulis regex Python, ambil perhatian bahawa Python menggunakan \A dan \Z dan bukannya ^ dan $ untuk penanda rentetan, dan raw strings (r"pattern") mengelakkan double-escaping. Untuk regex PHP (PCRE) atau Java, corak sebahagian besarnya serasi dengan JavaScript tetapi periksa sintaks pembahagi dan flag.

Tidak. Semua padanan regex berjalan di dalam pelayar anda menggunakan enjin RegExp asli JavaScript. Corak dan rentetan ujian anda tidak akan meninggalkan peranti anda.

Penguji dan Penyahpepijat Regex Dalam Talian

Regex tu benda yang semua orang google setiap kali. Tampal corak anda, tampal teks anda, dan lihat padanan disorot serta-merta. Tak perlu teka lagi sama ada corak anda betul - anda akan tahu secara masa nyata.

Padanan Corak Ungkapan Nalar

Debug regex tanpa maklum balas yang betul memang menyusahkan. Penguji ini menunjukkan kumpulan tangkapan, kedudukan padanan dan statistik pelaksanaan supaya anda faham dengan tepat kenapa corak anda tidak menangkap apa yang dijangka.

Corak Regex Pantas untuk Tugasan Biasa

Tak ingat corak pengesahan e-mel? Atau macam mana nak match URL? Klik corak pantas dan muat regex biasa untuk e-mel, URL, telefon, IP dan tarikh dengan satu klik. Jimat masa tak payah pergi Stack Overflow.

Keselamatan dan Privasi

Keselamatan data anda adalah keutamaan kami

Pemprosesan Tempatan

Semua pemprosesan berlaku dalam pelayar anda

Tiada Pemindahan Data

Data anda tidak dihantar ke pelayan kami

Tiada Penyimpanan Data

Tiada data disimpan atau dikongsi

Penyulitan SSL

Penyulitan SSL untuk sambungan selamat

Langkah Seterusnya

Lebih Banyak di MoreOnlineTools