Ungkapan biasa (regex) adalah corak yang berkuasa untuk mencari, memadankan, dan mengekstrak teks. Ia digunakan dalam pengaturcaraan, pengesahan data, operasi cari-dan-ganti, dan analisis log. Cabarannya ialah sintaks regex boleh rumit untuk ditulis dengan betul. Penguji Regex percuma kami membolehkan anda bereksperimen secara masa nyata supaya anda dapat melihat tepat apa yang dipadankan oleh corak anda.
Apa yang anda perlukan
- Corak yang ingin anda uji, atau masalah pemadanan teks untuk diselesaikan
- Pelayar web (Chrome, Firefox, Safari, atau Edge)
- Tiada akaun atau pemasangan diperlukan
Panduan langkah demi langkah
Buka Penguji Regex
Pergi ke alat Penguji Regex. Anda akan melihat dua kawasan utama: satu untuk corak ungkapan biasa anda dan satu lagi untuk teks ujian yang ingin anda padankan.
Tulis corak regex anda
Masukkan ungkapan biasa dalam medan corak. Mulakan dengan mudah dan bina kerumitan secara beransur-ansur. Sebagai contoh, mulakan dengan perkataan literal seperti hello untuk memadankan teks tepat itu, kemudian perhalusi corak anda dengan aksara khas untuk memadankan corak yang lebih luas.
Masukkan teks ujian
Tampal atau taip teks contoh dalam kawasan ujian. Sertakan contoh yang sepatutnya dipadankan dan contoh yang tidak sepatutnya. Alat ini menyorot semua padanan secara masa nyata semasa anda menaip, jadi anda dapat segera melihat sama ada corak anda berfungsi dengan betul.
Perhalusi dan sahkan
Laraskan corak anda dan perhatikan padanan dikemas kini dengan serta-merta. Tambahkan kes tepi ke teks ujian anda — input yang luar biasa, keadaan sempadan, dan format yang rumit — untuk memastikan regex anda mengendalikannya dengan betul. Apabila anda berpuas hati, salin corak ke dalam kod atau alat anda.
Baik untuk diketahui Penguji Regex berjalan sepenuhnya dalam pelayar anda. Tiada data dihantar ke mana-mana pelayan, jadi anda boleh menguji corak dengan selamat terhadap teks sensitif seperti alamat e-mel, fail log, atau data peribadi.
Sintaks regex penting
| Simbol | Maksud | Contoh |
|---|---|---|
. |
Mana-mana aksara tunggal | h.t memadankan "hat", "hit", "hot" |
* |
Sifar atau lebih daripada sebelumnya | ab*c memadankan "ac", "abc", "abbc" |
+ |
Satu atau lebih daripada sebelumnya | ab+c memadankan "abc", "abbc" tetapi bukan "ac" |
? |
Sifar atau satu daripada sebelumnya | colou?r memadankan "color" dan "colour" |
\d |
Mana-mana digit (0-9) | \d{3} memadankan "123", "456" |
\w |
Mana-mana aksara perkataan | \w+ memadankan "hello", "test123" |
\s |
Mana-mana ruang kosong | hello\sworld memadankan "hello world" |
^ |
Permulaan rentetan | ^Hello memadankan "Hello world" |
$ |
Penghujung rentetan | world$ memadankan "Hello world" |
[abc] |
Mana-mana aksara dalam set | [aeiou] memadankan mana-mana huruf vokal |
(...) |
Kumpulan tangkapan | (ab)+ memadankan "ab", "abab" |
Corak biasa yang boleh anda cuba
Salin corak ini ke dalam Penguji Regex dan bereksperimen dengannya.
Alamat e-mel
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
Memadankan format e-mel piawai seperti user@example.com dan first.last@company.co.uk. Ujinya dengan format e-mel yang sah dan tidak sah untuk melihat cara ia mengendalikan kes tepi.
URL
https?://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/[^\s]*)?
Memadankan URL HTTP dan HTTPS seperti https://example.com dan http://site.org/path/page. s? menjadikan "s" dalam "https" pilihan.
Nombor telefon (format AS)
(\+1[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Memadankan pelbagai format telefon AS: (555) 123-4567, 555-123-4567, +1 555.123.4567, dan variasi serupa.
Tip Apabila membina regex, mulakan dengan corak paling mudah yang memadankan teks sasaran anda kemudian tambahkan kekangan satu persatu. Mencuba menulis regex yang kompleks sekaligus jauh lebih sukar daripada membinanya secara beransur-ansur sambil memerhati padanan dikemas kini secara masa nyata.
Kesilapan biasa dan cara mengelakkannya
Terlupa untuk melepaskan aksara khas. Aksara seperti ., *, +, ?, (, ), [, ], {, } mempunyai maksud khas dalam regex. Untuk memadankannya secara literal, tambahkan garis miring ke belakang sebagai awalan: \. memadankan titik, \( memadankan kurungan.
Terlalu tamak. Secara lalai, * dan + memadankan sebanyak mungkin teks. Jika anda mahukan padanan terpendek, tambahkan ? selepasnya: .*? memadankan sesedikit mungkin.
Tidak menampal corak anda. Tanpa ^ dan $, corak seperti \d{3} akan memadankan mana-mana tiga digit berturutan di mana-mana sahaja dalam rentetan, termasuk dalam nombor yang lebih panjang. Gunakan sauh apabila anda perlu memadankan keseluruhan rentetan.
Penting Sintaks regex berbeza sedikit antara bahasa pengaturcaraan dan alat. Corak yang berfungsi dalam JavaScript mungkin berkelakuan berbeza dalam Python atau PHP. Sentiasa uji corak akhir anda dalam bahasa atau persekitaran di mana anda akan menggunakannya.
Soalan yang kerap ditanya
Apakah bendera regex?
Bendera mengubah cara corak digunakan. Bendera biasa termasuk g (global — cari semua padanan, bukan hanya yang pertama), i (tidak sensitif huruf), dan m (berbilang baris — ^ dan $ memadankan sempadan baris, bukan hanya sempadan rentetan). Penguji Regex membolehkan anda togol bendera ini.
Bolehkah saya menggunakan regex untuk cari dan ganti?
Ya. Kebanyakan editor teks dan bahasa pengaturcaraan menyokong cari dan ganti berasaskan regex. Kumpulan tangkapan (...) membolehkan anda merujuk teks yang dipadankan dalam rentetan penggantian.
Bagaimana cara memadankan merentasi pelbagai baris?
Gunakan bendera s (dotall) untuk menjadikan . memadankan aksara baris baharu, atau gunakan [\s\S] sebagai alternatif merentas platform yang memadankan mana-mana aksara termasuk baris baharu.
Langkah seterusnya
Sekarang anda boleh membina dan menguji corak regex, cuba gunakannya dalam kod, editor teks, atau alat baris perintah anda. Untuk utiliti pembangun lain, lihat Cron Parser untuk ungkapan penjadualan atau JSON Formatter untuk bekerja dengan data berstruktur.