Panduan Singkat Sintaks Ekspresi Reguler

Ekspresi reguler, juga dikenali sebagai pola aturan, adalah pola teks yang biasanya digunakan untuk mencari, mengganti, dan mengelola teks. Ini termasuk huruf dari a hingga z serta beberapa karakter meta khas. Ruang lingkup aplikasi ekspresi reguler sangat luas, awalnya dipopulerkan oleh Unix, dan kemudian digunakan secara luas dalam Scala, PHP, C#, Java, C++, Objective-c, Perl, Swift, VBScript, Javascript, Ruby, dan Python, dan lainnya. Mempelajari ekspresi reguler sebenarnya melibatkan belajar tentang pemikiran logik yang sangat fleksibel, dengan menggunakan metode cepat dan sederhana untuk mengontrol string.
Karakter Reguler Deskripsi
\ Menandakan karakter berikutnya sebagai karakter khas, karakter literal, atau referensi mundur, atau untaian octal. Contohnya, "n" mencocokkan karakter "n". "\n" mencocokkan karakter baris baru. Untaian "\\" mencocokkan "\" dan "\(" mencocokkan "(".
^ Mencocokkan posisi awal dari string input. Jika atribut Multiline objek RegExp diatur, ^ juga mencocokkan posisi setelah "\n" atau "\r".
$ Mencocokkan posisi akhir dari string input. Jika atribut Multiline objek RegExp diatur, $ juga mencocokkan posisi sebelum "\n" atau "\r".
* Mencocokkan sub-ekspresi sebelumnya nol atau lebih kali. Contohnya, "zo*" dapat mencocokkan "z" dan "zoo". * setara dengan {0,}.
+ Mencocokkan sub-ekspresi sebelumnya satu atau lebih kali. Contohnya, "zo+" dapat mencocokkan "zo" dan "zoo", tetapi tidak dapat mencocokkan "z". + setara dengan {1,}.
? Mencocokkan sub-ekspresi sebelumnya nol atau satu kali. Contohnya, "do(es)?" dapat mencocokkan "does" atau "does" dalam "do". ? setara dengan {0,1}.
{n} n adalah bilangan bulat non-negatif. Cocok untuk mencocokkan n kali tertentu. Contohnya, "o{2}" tidak dapat mencocokkan "o" dalam "Bob", tetapi dapat mencocokkan dua o dalam "food".
{n,} n adalah bilangan bulat non-negatif. Cocok untuk mencocokkan setidaknya n kali. Contohnya, "o{2,}" tidak dapat mencocokkan "o" dalam "Bob", tetapi dapat mencocokkan semua o dalam "foooood". "o{1,}" setara dengan "o+". "o{0,}" setara dengan "o*".
{n,m} m dan n adalah bilangan bulat non-negatif, di mana n<=m. Mencocokkan setidaknya n kali dan maksimal m kali. Contohnya, "o{1,3}" akan mencocokkan tiga o pertama dalam "fooooood". "o{0,1}" setara dengan "o?". Harap dicatat bahwa tidak boleh ada spasi antara koma dan dua angka.
? Ketika karakter ini mengikuti sembarang pembatas lain (*, +, ?, {n}, {n,}, {n,m}), pola yang cocok adalah non-gengsi. Modus non-gengsi mencocokkan string yang dicari sebanyak mungkin, sedangkan modus gengsi mencocokkan sebanyak mungkin karakter yang sedapatnya. Contohnya, untuk string "oooo", "o+?" akan mencocokkan satu "o", sedangkan "o+" akan mencocokkan semua "o".
. Mencocokkan satu karakter tunggal yang bukan "\n". Untuk mencocokkan semua karakter, termasuk "\n", gunakan pola seperti "(.|\n)".
(pola) Mencocokkan pola dan mengambil kecocokan ini. Kecocokan yang diambil dapat diperoleh dari koleksi Matches yang dihasilkan, dalam VBScript menggunakan koleksi SubMatches, sedangkan dalam JScript menggunakan atribut $0…$9. Untuk mencocokkan karakter kurung, gunakan "\(" atau "\)".
(?:pola) Mencocokkan pola tetapi tidak mengambil hasil kecocokan, artinya ini adalah kecocokan non-menangkap dan tidak disimpan untuk digunakan nanti. Ini berguna saat menggunakan karakter atau "(|)" untuk menggabungkan bagian-bagian pola. Contohnya "industr(?:y|ies)" adalah ekspresi yang lebih ringkas dibandingkan "industry|industries".
(?=pola) Pemeriksaan positif yang pasti, kecocokan yang mencocokkan pola di awal string yang dicari. Ini adalah kecocokan non-menangkap, yang berarti kecocokan ini tidak perlu diambil untuk digunakan nanti. Contohnya, "Windows(?=95|98|NT|2000)" dapat mencocokkan "Windows" di dalam "Windows2000", tetapi tidak dapat mencocokkan "Windows" dalam "Windows3.1". Pemeriksaan tidak menghabiskan karakter, yang berarti setelah kecocokan terjadi, pencarian untuk kecocokan berikutnya dimulai segera setelah kecocokan terakhir, bukan dari karakter yang mencakup pemeriksaan.
(?!pola) Pemeriksaan negatif yang pasti, kecocokan yang mencocokkan string yang tidak cocok dengan pola. Ini adalah kecocokan non-menangkap, yang berarti kecocokan ini tidak perlu diambil untuk digunakan nanti. Contohnya "Windows(?!95|98|NT|2000)" dapat mencocokkan "Windows3.1" tetapi tidak mencocokkan "Windows2000". Pemeriksaan tidak menghabiskan karakter, yang berarti setelah kecocokan terjadi, pencarian untuk kecocokan berikutnya dimulai segera setelah kecocokan terakhir.
(?<=pola) Pemeriksaan positif yang negatif, sama dengan pemeriksaan positif yang pasti tetapi dengan arah yang berlawanan. Contohnya, "(?<=95|98|NT|2000)Windows" dapat mencocokkan "2000Windows" tetapi tidak dapat mencocokkan "3.1Windows".
(?<!pola) Pemeriksaan negatif yang pasti, sama dengan pemeriksaan negatif yang pasti tetapi dengan arah yang berlawanan. Contohnya "(?<!95|98|NT|2000)Windows" dapat mencocokkan "3.1Windows" tetapi tidak dapat mencocokkan "2000Windows".
x|y Mencocokkan x atau y. Contohnya, "z|food" dapat mencocokkan "z" atau "food". "(z|f)ood" mencocokkan "zood" atau "food".
[xyz] Kumpulan karakter. Mencocokkan satu karakter yang termasuk. Contohnya, "[abc]" dapat mencocokkan "a" dalam "plain".
[^xyz] Kumpulan karakter negatif. Mencocokkan satu karakter yang tidak termasuk. Contohnya, "[^abc]" dapat mencocokkan "p" dalam "plain".
[a-z] Cakupan karakter. Mencocokkan satu karakter di dalam rentang yang ditentukan. Contohnya, "[a-z]" dapat mencocokkan satu huruf kecil yang ada antara "a" hingga "z".
[^a-z] Kumpulan karakter negatif. Mencocokkan karakter yang tidak berada dalam rentang yang ditentukan. Contohnya, "[^a-z]" dapat mencocokkan karakter yang tidak berada di antara "a" dan "z".
\b Mencocokkan batas kata, yaitu posisi antara kata dan ruang. Contohnya, "er\b" dapat mencocokkan "er" dalam "never", tetapi tidak dapat mencocokkan "er" dalam "verb".
\B Mencocokkan bukan batas kata. "er\B" dapat mencocokkan "er" dalam "verb", tetapi tidak dapat mencocokkan "er" dalam "never".
\cx Mencocokkan karakter kontrol yang ditentukan oleh x. Contohnya, \cM mencocokkan karakter Control-M atau carriage return. Nilai x harus salah satu dari A-Z atau a-z. Jika tidak, c dianggap sebagai karakter literal "c".
\d Mencocokkan satu karakter angka. Setara dengan [0-9].
\D Mencocokkan satu karakter bukan angka. Setara dengan [^0-9].
\f Mencocokkan satu karakter halaman baru. Setara dengan \x0c dan \cL.
\n Mencocokkan satu karakter baris baru. Setara dengan \x0a dan \cJ.
\r Mencocokkan satu karakter carriage return. Setara dengan \x0d dan \cM.
\s Mencocokkan karakter kosong apa pun, termasuk spasi, tab, pindaian, dll. Setara dengan [ \f\n\r\t\v].
\S Mencocokkan karakter yang bukan kosong. Setara dengan [^ \f\n\r\t\v].
\t Mencocokkan satu karakter tab. Setara dengan \x09 dan \cI.
\v Mencocokkan satu karakter tab vertikal. Setara dengan \x0b dan \cK.
\w Mencocokkan karakter kata yang termasuk garis bawah. Setara dengan "[A-Za-z0-9_]".
\W Mencocokkan karakter yang bukan karakter kata. Setara dengan "[^A-Za-z0-9_]".
\xn Mencocokkan n, di mana n adalah nilai escape heksadesimal. Nilai escape heksadesimal harus terdiri dari dua digit. Contohnya, "\x41" mencocokkan "A". "\x041" setara dengan "\x04&1". Dalam ekspresi reguler, kode ASCII dapat digunakan.
\num Mencocokkan num, di mana num adalah bilangan bulat positif. Referensi hasil yang diambil. Contohnya, "(.)\1" mencocokkan dua karakter yang sama berturut-turut.
\n Menunjukkan nilai escape oktal atau referensi mundur. Jika \n terletak setidaknya n sub-ekspresi yang diambil, maka n adalah referensi mundur. Jika n adalah angka oktal (0-7), maka n adalah nilai escape oktal.
\nm Menunjukkan nilai escape oktal atau referensi mundur. Jika \nm terletak setidaknya di depan nm sub-ekspresi yang diambil, maka nm adalah referensi mundur. Jika kondisi di atas tidak terpenuhi dan jika n dan m adalah bilangan oktal (0-7), maka \nm akan mencocokkan escape oktal dengan nilai nm.
\nml Jika n adalah bilangan oktal (0-3) dan m dan l adalah bilangan oktal (0-7), maka mencocokkan escape oktal dengan nilai nml.
\un Mencocokkan n, di mana n adalah karakter Unicode yang ditunjukkan dalam empat digit heksadesimal. Contohnya, \u00A9 mencocokkan simbol hak cipta (©).
Ekspresi Reguler yang Sering Digunakan
Nama Pengguna /^[a-z0-9_-]{3,16}$/
Kata Laluan /^[a-z0-9_-]{6,18}$/
Kata Laluan 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (terdiri daripada nombor / huruf besar / huruf kecil / tanda baca, keempat-empat mesti ada, lebih dari 8 digit)
Nilai Heksadesimal /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
Emel /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ atau \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ atau [a-zA-z]+://[^\s]*
Alamat IP /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ atau ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
Tag HTML /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ atau <(.*)(.*)>.*<\/\1>|<(.*) \/>
Padam Kode\\Ulasan (?<!http:|\S)//.*$
Cocok Karakter Dwi-byte (termasuk huruf Cina) [^\x00-\xff]
Huruf Cina (Karakter) [\u4e00-\u9fa5]
Rentang Huruf Cina dalam Kode Unicode /^[\u2E80-\u9FFF]+$/
Karakter Cina dan Tanda Baca Penuh [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Tarikh (Tahun-Bulan-Hari) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Tarikh (Bulan/Hari/Tahun) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Waktu (Jam:Menit, Format 24 Jam) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Nombor Telefon Talian Tetap Pusat (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Nombor Telefon Bimbit Pusat 1\d{10}
Poskod Pusat [1-9]\d{5}
Nombor Kad Pengenalan Pusat (15 atau 18 Digit) \d{15}(\d\d[0-9xX])?
Bilangan Bulat Positif (Bilangan Positif atau Nol) \d+
Bilangan Bulat Positif [0-9]*[1-9][0-9]*
Bilangan Bulat Negatif -[0-9]*[1-9][0-9]*
Bilangan Bulat -?\d+
Nombor Perpuluhan (-?\d+)(\.\d+)?
Barisan Kosong \n\s*\r atau \n\n(editplus) atau ^[\s\S ]*\n
Nombor QQ [1-9]\d{4,}
Perkataan tanpa abc \b((?!abc)\w)+\b
Mencocokkan Karakter Kosong di Awal dan Akhir ^\s*|\s*$
Pengeditan Biasa
Berikut adalah beberapa penggantian untuk bahasa Cina yang khusus (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

Panduan Cepat Sintaks Ekspresi Reguler - Teknik dan Sintaks Ekspresi Reguler yang Sering Digunakan

Ekspresi reguler adalah alat pemprosesan teks yang kuat; halaman ini menawarkan kepada anda panduan cepat sintaks ekspresi reguler untuk membantu anda dengan cepat memahami sintaks asas ekspresi reguler, modifikasi, sub-ekspresi, modus gengsi, dan mod non-gengsi.

Sintaks Asas Ekspresi Reguler

Ekspresi reguler digunakan untuk mendeskripsikan pola string; sintaks asas yang umum termasuk:

Modifikasi Ekspresi Reguler yang Sering Digunakan

Modifikasi ekspresi reguler digunakan untuk mengubah peraturan pencocokan ekspresi reguler; modifikasi yang umum termasuk:

Modus Gengsi dan Non-Gengsi

Dalam ekspresi reguler, penghitung secara lalai adalah gengsi, yang mencocokkan seberapa banyak karakter. Modus non-gengsi digunakan dengan menambahkan ? selepas penghitung; contoh berikut:

Sub-ekspresi dan Pengelompokan

Sub-ekspresi dalam ekspresi reguler ditentukan dengan tanda kurung (()) dan biasa digunakan untuk mengekstrak bagian yang dicocokkan. Pengelompokan dilakukan melalui simbol "|". Contohnya:

Permintaan Cepat Ekspresi Reguler

Berikut adalah permintaan cepat untuk ekspresi reguler yang sering digunakan:

Fungsi Ekspresi Reguler
Mencocokkan Nombor \d
Mencocokkan Bukan Nombor \D
Mencocokkan Huruf [a-zA-Z]
Mencocokkan Karakter Apa Saja .
Mencocokkan Karakter Kosong \s

Pingangan Penggunaan Ekspresi Reguler

Ekspresi reguler luas digunakan di bidang berikut:

Petua Pembelajaran Ekspresi Reguler

Gunakan panduan cepat sintaks ekspresi reguler kami sekarang, untuk meningkatkan kecekapan anda dalam menulis ekspresi reguler dan meningkatkan kemampuan pemprosesan teks anda!

Jejak Anda:
Pilih Bahasa