Ekspresi Reguler, atau singkatnya regex atau regexp, sangat kuat dan luar biasa dalam mencari dan memanipulasi string teks, terutama dalam memproses file teks. Satu baris regex dapat dengan mudah mengganti beberapa lusin baris kode pemrograman Show Regex didukung di semua bahasa skrip (seperti Perl, Python, PHP, dan JavaScript); . Memulai dengan regex mungkin tidak mudah karena sintaks culunnya, tetapi ini pasti sepadan dengan investasi waktu Anda Regex Dengan ContohBagian ini dimaksudkan untuk mereka yang perlu menyegarkan ingatan mereka. Untuk pemula, lanjutkan ke bagian berikutnya untuk mempelajari sintaks, sebelum melihat contoh berikut Ringkasan Sintaks Regex
Contoh. Angka [0-9]+ atau \d+
Contoh Kode (Python, Java, JavaScript, Perl, PHP)Contoh Kode dengan PythonLihat "" untuk cakupan penuh Python mendukung Regex melalui modul find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++22. Python juga menggunakan backslash ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23_8) untuk escape sequence (mis. e. , Anda perlu menulis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46_6 untuk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238, find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++27 untuk find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++17), tetapi mendukung string mentah dalam bentuk find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++29, yang mengabaikan interpretasi urutan escape - bagus untuk menulis regex Contoh Kode di JawaLihat "Regular Expressions (Regex) in Java" untuk cakupan penuh Java mendukung Regex dalam paket find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 Keluarannya adalah find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++ Contoh Kode di PerlLihat "" untuk cakupan penuh Perl menggunakan ekspresi reguler secara ekstensif dengan banyak sintaks dan operator bawaan. Di Perl (dan JavaScript), regex dibatasi oleh sepasang garis miring ke depan (default), dalam bentuk find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++31. Anda dapat menggunakan operator bawaan
Di Perl, Anda dapat menggunakan string non-interpolasi kutipan tunggal find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++34 untuk menulis regex untuk menonaktifkan interpretasi backslash ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238) oleh Perl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Contoh Kode dalam JavaScriptLihat "" untuk cakupan penuh Dalam JavaScript (dan Perl), regex dibatasi oleh sepasang garis miring ke depan, dalam bentuk find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++36. Ada dua set metode, terbitkan melalui objek find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++37 atau objek find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++38 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 Contoh Kode di PHP[MELAKUKAN] Contoh. String Numerik Penuh ^[0-9]+$ atau ^\d+$
Contoh. Literal Bilangan Bulat Positif [1-9][0-9]*. 0 atau [1-9]\d*. 0
Contoh. Literal Bilangan Bulat Penuh ^[+-]?[1-9][0-9]*. 0$ atau ^[+-]?[1-9]\d*. 0$
Contoh. Pengidentifikasi (atau Nama) [a-zA-Z_][0-9a-zA-Z_]* atau [a-zA-Z_]\w*
Contoh. Nama File Gambar ^\w+\. (gif. png. jpg. jpeg)$
Contoh. Alamat Email ^\w+([. -]?\w+)*@\w+([. -]?\w+)*(\. \w{2,3})+$
Latihan. Tafsirkan regex ini, yang memberikan representasi lain dari alamat email. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23_59 Contoh. Menukar Kata menggunakan Referensi Belakang Bertanda Kurung ^(\S+)\s+(\S+)$ dan $2 $1
Contoh Kode dengan PythonPython menyimpan referensi belakang dalam tanda kurung di 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23_87 menyimpan seluruh pertandingan Contoh Kode di JawaJava menyimpan referensi belakang dalam tanda kurung di 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Contoh. Alamat HTTP ^http. \/\/\S+(\/\S+)*(\/)?$
Contoh. Pola Regex di AngularJSPola regex yang agak rumit berikut digunakan oleh AngularJS dalam sintaks JavaScript Contoh. Contoh Regex di PerlSintaks Ekspresi Reguler (Regex).Ekspresi Reguler (atau Regex) adalah pola (atau filter) yang menjelaskan sekumpulan string yang cocok dengan pola tersebut. Dengan kata lain, regex menerima sekumpulan string tertentu dan menolak sisanya Regex terdiri dari urutan karakter, metacharacters (seperti find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++5, find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++17, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2373, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238, ________20___010 __________0____0____________________________. Mereka dibangun dengan menggabungkan banyak sub-ekspresi yang lebih kecil Mencocokkan Karakter TunggalBlok penyusun dasar regex adalah pola yang cocok dengan satu karakter. Sebagian besar karakter, termasuk semua huruf ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46_09 dan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4610) dan angka ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4611), cocok dengan dirinya sendiri. Misalnya, regex x cocok dengan substring "x" ; Karakter non-alfanumerik tanpa arti khusus dalam regex juga cocok dengan dirinya sendiri. Misalnya, find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++1 cocok dengan find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++2; Karakter Khusus Regex dan Urutan PelarianKarakter Khusus RegexKarakter ini memiliki arti khusus dalam regex (saya akan membahas secara detail di bagian selanjutnya)
Urutan Melarikan DiriKarakter yang tercantum di atas memiliki arti khusus dalam regex. Untuk mencocokkan karakter-karakter ini, kita perlu menambahkannya dengan backslash ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238), dikenal sebagai escape sequence. Misalnya, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46_2 cocok dengan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 463; Regex juga mengenali escape sequence umum seperti 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 468 untuk baris baru, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 469 untuk tab, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 untuk carriage-return, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 201 untuk angka oktal hingga 3 digit, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 202 untuk kode hex dua digit, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 203 untuk Unicode 4 digit, Contoh Kode dengan PythonContoh Kode dalam JavaScript[MELAKUKAN] Contoh Kode di Jawa[MELAKUKAN] Mencocokkan Urutan Karakter (String atau Teks)Sub-EkspresiRegex dibangun dengan menggabungkan banyak sub-ekspresi atau atom yang lebih kecil. Misalnya, regex 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46_47 cocok dengan string " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4647". Pencocokan, secara default, peka terhadap huruf besar-kecil, tetapi dapat diatur ke peka huruf besar-kecil melalui pengubah ATAU (. ) OperatorAnda dapat memberikan alternatif menggunakan operator "ATAU", dilambangkan dengan bilah vertikal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4649. Misalnya, regex 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46_50 menerima string " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4651", " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4652", " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4653" atau " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4654" Daftar Braket (Kelas Karakter) [. ], [^. ], [. -. ]Ekspresi tanda kurung adalah daftar karakter yang diapit oleh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4623, juga disebut kelas karakter. Ini cocok dengan karakter APA PUN dalam daftar. Namun, jika karakter pertama dari daftar adalah tanda sisipan ( find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++9), maka cocok dengan SATU karakter yang TIDAK ada dalam daftar. Misalnya, regex 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4657 cocok dengan satu digit find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++41, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4659, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4654, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4661, atau 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4662; Alih-alih mencantumkan semua karakter, Anda bisa menggunakan ekspresi rentang di dalam tanda kurung. Ekspresi rentang terdiri dari dua karakter yang dipisahkan oleh tanda hubung ( ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$0). Itu cocok dengan karakter tunggal apa pun yang mengurutkan antara dua karakter, inklusif. Misalnya, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46_70 sama dengan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4671. Anda dapat menyertakan tanda sisipan ( find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++_9) di depan rentang untuk membalikkan pencocokan. Misalnya, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46_73 setara dengan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4674 Sebagian besar karakter regex khusus kehilangan artinya di dalam daftar braket, dan dapat digunakan apa adanya;
Beri Nama Kelas Karakter di Daftar Braket (Hanya Untuk Perl?)Kelas karakter bernama (POSIX) sudah ditentukan sebelumnya dalam ekspresi tanda kurung. Mereka
Misalnya, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20_12 berarti 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2013. (Perhatikan bahwa tanda kurung siku pada nama kelas ini adalah bagian dari nama simbolik, dan harus disertakan selain tanda kurung siku yang membatasi daftar tanda kurung. ) Metakarakter. , \w, \W, \d, \D, \s, \SKarakter meta adalah simbol dengan arti khusus di dalam regex
Contoh Urutan Backslash (\) dan Regex EscapeRegex menggunakan backslash ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238) untuk dua tujuan
Perhatikan bahwa dalam banyak bahasa pemrograman (C, Java, Python), garis miring terbalik ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238) juga digunakan untuk escape sequence dalam string, misalnya. g. , 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20_56 untuk baris baru, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2057 untuk tab, dan Anda juga perlu menulis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2058 untuk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238. Akibatnya, untuk menulis pola regex 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46_6 (yang cocok dengan satu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238) dalam bahasa ini, Anda perlu menulis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2062 (dua tingkat pelarian. ). Demikian pula, Anda perlu menulis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2063 untuk regex metacharacter find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++17. Ini rumit dan rawan kesalahan Indikator Kejadian (Operator Pengulangan). +, *, ?, {m}, {m,n}, {m,}Sub-ekspresi regex dapat diikuti oleh indikator kejadian (alias operator pengulangan)
Misalnya. Regex 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2074 menerima " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2075", " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2076" dan " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2077" PengubahAnda dapat menerapkan pengubah ke regex untuk menyesuaikan perilakunya, seperti global, case-insensitive, multiline, dll. Cara menerapkan pengubah berbeda di antara bahasa Di Perl, Anda dapat melampirkan pengubah setelah regex, dalam bentuk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2078. Sebagai contoh Di Jawa, Anda menerapkan pengubah saat mengompilasi regex 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2079. Misalnya, Mode pengubah yang umum digunakan adalah
Keserakahan, Kemalasan, dan Mundur untuk Operator PengulanganKeserakahan Operator Pengulangan *, +, ?, {m,n}. Operator pengulangan adalah operator serakah, dan secara default menangkap karakter sebanyak mungkin untuk pertandingan. Misalnya, regex 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20_74 mencoba mencocokkan dengan " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2077", lalu " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2076", lalu " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2075" Lazy Quantifier *?, +?, ??, {m,n}?, {m,}?,. Anda dapat menambahkan find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++8 setelah operator pengulangan untuk mengekang keserakahannya (mis. e. , berhenti di pertandingan terpendek). Misalnya, input = "The Mundur. Jika regex mencapai keadaan di mana kecocokan tidak dapat diselesaikan, regex akan mundur dengan melepaskan satu karakter dari kecocokan rakus. Misalnya, jika regex input = "The00 cocok dengan string " input = "The01", input = "The02 pertama cocok dengan " input = "The01"; Kuantor Posesif *+, ++, ?+, {m,n}+, {m,}+. Anda dapat menambahkan find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++6 ke operator pengulangan untuk menonaktifkan backtracking, bahkan dapat mengakibatkan kegagalan pertandingan. e. g, input = "The_08 tidak akan cocok dengan input = "The09. Fitur ini mungkin tidak didukung dalam beberapa bahasa Position Anchors ^, $, \b, \B, \<, \>, \A, \ZJangkar posisi TIDAK cocok dengan karakter sebenarnya, tetapi cocok dengan posisi dalam string, seperti awal baris, akhir baris, awal kata, dan akhir kata
Menangkap Kecocokan melalui Referensi-Kembali yang Dikurung & Variabel yang Cocok $1, $2,Tanda kurung
Referensi belakang ini (atau grup penangkap) disimpan dalam variabel khusus input = "The_40 membuat dua referensi belakang yang cocok dengan dua kata pertama. Kata-kata yang cocok disimpan di "x" 9 dan 9 0 (atau 9 1 dan 9 2), masing-masingReferensi balik penting untuk memanipulasi string. Referensi balik dapat digunakan dalam string substitusi serta polanya. Sebagai contoh, (Lanjutan) Lihat ke depan/Lihat ke belakang, Pengelompokan dan BersyaratFitur ini mungkin tidak didukung dalam beberapa bahasa Pandangan ke depan positif (?=pola)input = "The_54 dikenal sebagai lookahead positif. Itu melakukan pertandingan, tetapi tidak menangkap pertandingan, hanya mengembalikan hasilnya. cocok atau tidak cocok. Ini juga disebut penegasan karena tidak menggunakan karakter apa pun dalam pencocokan. Misalnya, regex kompleks berikut digunakan untuk mencocokkan alamat email dengan AngularJS ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$ Pola lookahead positif pertama input = "The_55 menyetel panjang maksimum menjadi 254 karakter. Lookahead positif kedua input = "The_56 menetapkan maksimum 64 karakter sebelum tanda input = "The57 untuk nama pengguna Pandangan negatif (?. pola)Kebalikan dari input = "The_54. Cocokkan jika input = "The_59 tidak ada. Misalnya, input = "The60 cocok dengan input = "The61 di input = "The62 (tidak mengkonsumsi input = "The63); . Sedangkan input = "The_65 cocok dengan input = "The61 di input = "The64, tetapi tidak find() found substring "00123" starting at index 3 and ending at index 8 find() found substring "456" starting at index 11 and ending at index 14 find() found substring "0" starting at index 15 and ending at index 16 matches() found nothing lookingAt() found nothing abc**xyz456_0 abc++xyz++_++43 Tampilan Positif (?<=pattern)[MELAKUKAN] Tampak Belakang Negatif (?pattern)[MELAKUKAN] Grup yang Tidak Menangkap (?. pola)Ingatlah bahwa Anda dapat menggunakan Referensi Belakang Bertanda Kurung untuk menangkap kecocokan. Untuk menonaktifkan penangkapan, gunakan input = "The_69 di dalam tanda kurung dalam bentuk input = "The70. Dengan kata lain, input = "The_69 menonaktifkan pembuatan grup penangkap, agar tidak membuat grup penangkap yang tidak perlu Contoh. [MELAKUKAN] Named Capturing Group (? |