Kami sudah melihat hal serupa – tanda kurung siku. Mereka memungkinkan untuk memilih antara beberapa karakter, misalnya gr[ae]y cocok dengan gray atau grey
Tanda kurung siku hanya mengizinkan karakter atau kelas karakter. Pergantian memungkinkan ekspresi apa pun. Regexp A|B|C berarti salah satu ekspresi A, [01]\d | 2[0-3]:[0-5]\d0 atau [01]\d | 2[0-3]:[0-5]\d1
Contohnya
- [01]\d | 2[0-3]:[0-5]\d2 artinya persis sama dengan gr[ae]y
- [01]\d | 2[0-3]:[0-5]\d4 berarti [01]\d | 2[0-3]:[0-5]\d5 atau [01]\d | 2[0-3]:[0-5]\d6
Untuk menerapkan pergantian ke bagian pola yang dipilih, kita dapat menyertakannya dalam tanda kurung
- [01]\d | 2[0-3]:[0-5]\d7 cocok [01]\d | 2[0-3]:[0-5]\d8 atau [01]\d | 2[0-3]:[0-5]\d9
- let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:590 cocok [01]\d | 2[0-3]:[0-5]\d8 atau let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:592
Pada artikel sebelumnya ada tugas membuat regexp untuk waktu pencarian dalam bentuk let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:593, misalnya let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:594. Tapi let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:59_5 yang sederhana terlalu kabur. Itu menerima let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:596 sebagai waktu (karena 99 menit cocok dengan pola, tetapi waktu itu tidak valid)
Bagaimana kita bisa membuat pola yang lebih baik?
Kita bisa menggunakan pencocokan yang lebih hati-hati. Pertama, jam
- Jika digit pertama adalah let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:59_7 atau let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:598, maka digit berikutnya dapat sembarang. let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:59_9
- Jika tidak, jika digit pertama adalah |0, maka digit berikutnya harus |1
- (digit pertama lainnya tidak diperbolehkan)
Kami dapat menulis kedua varian dalam regexp menggunakan pergantian. |2
Selanjutnya, menit harus dari |_3 sampai |4. Dalam bahasa ekspresi reguler yang dapat ditulis sebagai |5. digit pertama |_6, lalu digit apa pun
Jika kita merekatkan jam dan menit, kita mendapatkan polanya. |7
Kami hampir selesai, tapi ada masalah. Pergantian | sekarang terjadi antara let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:599 dan html|php|java(script)?0
Itu adalah. menit ditambahkan ke varian pergantian kedua, inilah gambaran yang jelas
[01]\d | 2[0-3]:[0-5]\d
Pola itu mencari let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:599 atau html|php|java(script)?0
Tapi itu salah, pergantian hanya boleh digunakan di bagian "jam" dari ekspresi reguler, untuk mengizinkan let regexp = /([01]\d|2[0-3]):[0-5]\d/g; alert("00:00 10:10 23:59 25:99 1:2".match(regexp)); // 00:00,10:10,23:599 ATAU html|php|java(script)?4. Mari kita perbaiki dengan melampirkan "jam" ke dalam tanda kurung. html|php|java(script)?5
Ekspresi reguler adalah urutan karakter yang membentuk pola pencarian. Pola pencarian dapat digunakan untuk pencarian teks dan teks untuk menggantikan operasi. Ekspresi reguler dapat berupa karakter tunggal atau pola yang lebih rumit. Ekspresi reguler dapat digunakan untuk melakukan semua jenis pencarian teks dan operasi penggantian teks
Sintaksis
/pattern/modifiers;Contoh
var patt = /GeeksforGeeks/i;Penjelasan.
/GeeksforGeeks/i adalah ekspresi reguler
GeeksforGeeks adalah polanya (untuk digunakan dalam pencarian)
i adalah pengubah (memodifikasi pencarian menjadi Case-Insensitive)
Pengubah Ekspresi Reguler dapat digunakan untuk melakukan pencarian multibaris yang juga dapat disetel ke pencocokan peka huruf besar-kecil.
EkspresiDeskripsigTemukan karakter secara globaliTemukan karakter dengan pencocokan tidak peka huruf besar-kecilmTemukan pencocokan multibarisKurung Ekspresi Reguler dapat berupa Temukan karakter dalam rentang yang ditentukan
ExpressionsDescription[abc]Cari salah satu karakter di dalam tanda kurung[^abc]Cari karakter apa saja, bukan di dalam tanda kurung[0-9]Cari salah satu digit di antara tanda kurung 0 sampai 9[^0-9]Cari digit apa saja yang tidak . y) Temukan salah satu alternatif antara x atau y dipisahkan denganMetakarakter Ekspresi Reguler adalah karakter dengan arti khusus
MetacharacterDescription\. Cari karakter tunggal, kecuali terminator baris atau baris baru. \Cari kata karakter i. e. karakter dari a hingga z, A hingga Z, 0 hingga 9\Cari digit\Cari karakter non-digit i. e semua karakter kecuali digit\Cari karakter spasi\Cari karakter bukan spasi. \Cari kecocokan di awal atau di akhir kata\Cari kecocokan yang tidak ada di awal atau akhir kata. \0 Temukan karakter NULL. \Temukan karakter baris baru. \fCari karakter form feed\rCari karakter carriage return\tCari karakter tab\vCari karakter tab vertikal\uxxxxCari karakter Unicode yang ditentukan oleh angka heksadesimal xxxxxRegular Expression Quantifiers digunakan untuk menentukan jumlah kejadian
QuantifierDescriptionn+Cocokkan string apa pun yang berisi setidaknya satu nn*Cocokkan string apa pun yang berisi nol atau lebih pemunculan nn?Cocokkan string apa pun yang berisi nol atau satu pemunculan nm{X}Temukan kecocokan string apa pun yang berisi urutan m . Temukan kecocokan string apa pun yang tidak diikuti oleh string tertentu mProperti Objek Ekspresi Reguler
PropertyDescriptionconstructorMengembalikan fungsi yang membuat prototipeglobal objek RegExpTentukan apakah pengubah "g" disetel atau tidakignorecaseTentukan apakah pengubah "i" disetel atau tidaklastindexTentukan indeks untuk memulai matchmultiline berikutnyaTentukan apakah pengubah "m" disetel atau tidaksumberMengembalikan teksMetode Objek Ekspresi Reguler
MethodDescriptioncompile()Digunakan untuk mengkompilasi ekspresi reguler saat menjalankan scriptexec()Digunakan untuk menguji kecocokan dalam sebuah string. test()Digunakan untuk menguji kecocokan dalam stringtoString()Mengembalikan nilai string dari ekspresi regulerDi bawah ini adalah contoh Ekspresi Reguler JavaScript.
Contoh.
JAVASCRIPT
function GFGFun() {
var str =var patt = /GeeksforGeeks/i;0var patt = /GeeksforGeeks/i;1
var var patt = /GeeksforGeeks/i;4
var patt = /GeeksforGeeks/i;6
var patt = /GeeksforGeeks/i;7
var patt = /GeeksforGeeks/i;8
Keluaran.
6Menggunakan Metode String. Dalam JavaScript, ekspresi reguler sering digunakan dengan metode dua string. cari() dan ganti()
- Metode search() menggunakan ekspresi untuk mencari kecocokan dan mengembalikan posisi kecocokan
- Metode replace() mengembalikan string yang dimodifikasi di mana pola diganti
Menggunakan pencarian String () Dengan Ekspresi Reguler. Gunakan ekspresi reguler untuk melakukan penelusuran peka huruf besar-kecil untuk "GeeksforGeeks" dalam sebuah string
Contoh
JAVASCRIPT
function 60
61
63
var str =67var patt = /GeeksforGeeks/i;1
61
6 -11
var var patt = /GeeksforGeeks/i;4
61
var patt = /GeeksforGeeks/i;6
61
Please visit geeksforgeeks! 0
var Please visit geeksforgeeks! 3
61
var patt = /GeeksforGeeks/i;6
var patt = /GeeksforGeeks/i;7
Please visit geeksforgeeks! 8
Keluaran.
6 -1Gunakan String ganti () Dengan Ekspresi Reguler. Gunakan ekspresi reguler yang tidak sensitif huruf besar-kecil untuk mengganti gfG dengan GeeksforGeeks dalam sebuah string