Header Ads

Memahami Regex untuk Layer 7 Mikrotik dan Proxy

Apa Regular Expressions?

Ekspresi reguler adalah pencocokan bahasa pola kuat yang merupakan bagian dari banyak bahasa pemrograman modern. Ekspresi reguler memungkinkan Anda untuk menerapkan pola ke string input dan mengembalikan daftar pertandingan dalam teks. Kalimat biasa juga memungkinkan teks yang akan diganti menggunakan pola pengganti. Ini adalah versi yang sangat kuat mencari dan mengganti.

Ada dua bagian untuk belajar Regular Expressions;
  • belajar sintaks Regex
  • belajar bagaimana bekerja dengan Regex dalam bahasa pemrograman Anda
Artikel ini memperkenalkan Anda ke sintaks Regular Expression. Setelah mempelajari sintaks untuk Regular Expressions Anda dapat menggunakannya berbagai bahasa seperti sintaks yang cukup mirip antara bahasa.
NET Framework. Microsoft berisi satu set kelas untuk bekerja dengan Regular Expressions dalam namespace System.Text.RegularExpressions.

Download Designer Regular Expression

Ketika belajar Regular Expressions, hal ini membantu untuk memiliki alat yang dapat Anda gunakan untuk menguji pola Regex. Rad Software memiliki Alat Expression Gratis Regular tersedia untuk di-download yang akan membantu saat Anda pergi melalui artikel.

Dasar-dasar - Mencari teks

Ekspresi Regular mirip dengan mencari dan mengganti dalam karakter biasa cocok sendiri. Jika saya ingin mencocokkan kata "pergi" pola Regular Expression akan "pergi".
  Teks: Anna Jones dan seorang teman pergi untuk makan siang
 Regex: pergi
 Pertandingan: Anna Jones dan seorang teman pergi untuk makan siang
 pergi 
Berikut ini adalah karakter khusus ketika bekerja dengan Regular Expressions. Mereka akan dibahas seluruh artikel.
  .  ^ $ {[(|) * +?  \ 

Pencocokan karakter apapun dengan dot

Karakter berhenti atau periode penuh ( . ) dikenal sebagai titik. Ini adalah wildcard yang akan cocok dengan karakter apapun kecuali baris baru ( \n ). Sebagai contoh jika saya ingin cocok dengan 'a' karakter diikuti oleh dua karakter.
  Teks: abc def ant sapi
 Regex: a ..
 Pertandingan: abc def ant sapi
 abc
 semut 
Jika pilihan Singleline diaktifkan, titik terpasangkan dengan karakter apapun termasuk karakter baris baru.

Pencocokan karakter kata

Backslash dan huruf kecil 'w' ( \w ) adalah kelas karakter yang akan ditemukan kata karakter. The Regular Expression berikut cocok 'a' diikuti oleh dua karakter kata.
  Teks: abc anaconda ant sapi apple
 Regex: a \ w \ w
 Pertandingan: abc ana CONDA ant sapi app le
 abc
 anekdote
 semut
 app 
Backslash dan huruf 'W' ( \W ) akan menyesuaikan dengan semua karakter non-kata.

Pencocokan white-space

White-space dapat dicocokkan dengan menggunakan \s (backslash dan 's'). The Regular Expression berikut cocok 'a' huruf diikuti oleh dua karakter kata maka karakter spasi.
  Teks: "abc anaconda semut"
 Regex: a \ w \ w \ s
 Pertandingan: 
 "Abc" 
Perhatikan bahwa semut tidak cocok karena tidak diikuti oleh karakter spasi.
White-space didefinisikan sebagai karakter spasi, baris baru ( \n ), pakan bentuk ( \f ), carriage return ( \r ), tab ( \t ) dan tab vertikal ( \v ). Hati-hati menggunakan \ s karena dapat menyebabkan perilaku tak terduga dengan cara mencocokkan jeda baris ( \n dan \r ). Kadang-kadang lebih baik untuk secara eksplisit menentukan karakter untuk mencocokkan daripada menggunakan \ seg untuk mencocokkan Tab dan penggunaan Ruang [\t\0x0020]

Pencocokan digit

Angka nol sampai sembilan dapat dicocokkan dengan menggunakan \d (backslash dan huruf kecil 'd'). Sebagai contoh, Regular Expression berikut cocok dengan tiga angka berturut-turut.
  Teks: 123 12 843 8472
 Regex: \ d \ d \ d
 Pertandingan: 123 843 12 847 2
 123
 843
 847 

Pencocokan set karakter tunggal

Tanda kurung siku digunakan untuk menentukan satu set karakter tunggal untuk mencocokkan. Setiap karakter tunggal dalam mengatur akan cocok. Sebagai contoh, Regular Expression berikut cocok dengan sembarang tiga karakter dimana karakter pertama adalah baik 'd' atau 'a'.
  Teks: abc def ant sapi
 Regex: [da] ..
 Pertandingan: abc def ant sapi
 abc
 def
 semut 
The caret ( ^ ) dapat ditambahkan ke awal set karakter untuk menentukan bahwa tidak ada karakter dalam set karakter yang harus dicocokkan. The Regular Expression berikut terpasangkan dengan karakter apapun di mana tiga karakter pertama tidak 'd' dan bukan 'a'.
  Teks: abc def ant sapi
 Regex: [^ da] ..
 Pertandingan: 
 "Bc"
 "Ef"
 "Nt"
 "Sapi" 

Pencocokan kisaran karakter

Kisaran karakter dapat dicocokkan dengan menggunakan tanda hubung ( - ). Ekspresi Reguler berikut cocok dengan sembarang tiga karakter di mana karakter kedua adalah baik 'a', 'b', 'c' atau 'd'.
  Teks: abc pena nda uml
 Regex: [iklan]..
 Pertandingan: abc pena nda uml
 abc
 nda 
Kisaran karakter juga dapat dikombinasikan bersama-sama. Ekspresi Reguler berikut cocok salah satu karakter dari 'a' sampai 'z' atau digit dari '0 'sampai '9' diikuti oleh dua karakter kata.
  Teks: abc no i8i 0AA
 Regex: [a-z0-9] \ w \ w
 Pertandingan: abc no i8i 0AA
 abc
 0AA
 i8i 
Pola dapat ditulis lebih sederhana sebagai [az\d]

Menentukan jumlah kali untuk mencocokkan dengan Quantifier

Quantifiers membiarkan Anda menentukan berapa kali sebuah ekspresi harus cocok. Para bilangan yang paling sering digunakan adalah karakter tanda bintang ( * ) dan tanda plus ( + ). Perhatikan bahwa tanda bintang ( * ) biasanya disebut bintang ketika berbicara tentang Regular Expressions.

Pencocokan nol atau lebih kali dengan bintang (*)

Bintang menceritakan Regular Expression untuk mencocokkan karakter, kelompok, atau kelas karakter yang segera mendahului itu nol atau lebih kali. Ini berarti bahwa karakter, kelompok, atau kelas karakter adalah opsional, dapat dicocokkan tetapi tidak harus cocok. The Regular Expression berikut cocok 'a' karakter diikuti oleh nol atau lebih karakter kata.
  Teks: Anna Jones dan teman dimiliki anaconda
 Regex: a \ w *
 Pilihan: IgnoreCase
 Pertandingan: Anna Jones dan teman dimiliki anaconda
 Anna
 dan
 sebuah
 sebuah
 anaconda 

Pencocokan satu kali atau lebih dengan plus (+)

Tanda plus memberitahu Regular Expression untuk mencocokkan karakter, kelompok, atau kelas karakter yang segera mendahului itu satu kali atau lebih. Ini berarti bahwa karakter, kelompok, atau kelas karakter harus ditemukan setidaknya sekali. Setelah itu ditemukan setelah akan dicocokkan lagi jika mengikuti pertandingan pertama. The Regular Expression berikut cocok 'a' karakter diikuti oleh setidaknya satu karakter kata.
  Teks: Anna Jones dan teman dimiliki anaconda
 Regex: a \ w +
 Pilihan: IgnoreCase
 Pertandingan: Anna Jones dan teman dimiliki anaconda
 Anna
 dan
 sebuah
 anaconda 
Perhatikan bahwa "a" tidak cocok karena tidak diikuti oleh karakter kata.

Pencocokan nol atau satu kali dengan tanda tanya (?)

Untuk menentukan pertandingan opsional menggunakan tanda tanya ( ? ). Tanda tanya cocok nol atau satu kali. The Regular Expression berikut cocok 'a' karakter diikuti dengan 'n' kemudian opsional diikuti oleh yang lain 'n'.
  Teks: Anna Jones dan teman dimiliki anaconda
 Regex: an?
 Pilihan: IgnoreCase
 Cocok: An n a Jones d teman memiliki sebuah cond ana a
 Sebuah
 sebuah
 sebuah
 sebuah
 sebuah
 sebuah
 sebuah
 sebuah 

Menentukan jumlah pertandingan

Jumlah minimum pertandingan yang diperlukan untuk karakter, kelompok, atau kelas karakter dapat ditentukan dengan kurung kurawal ( { n } ). The Regular Expression berikut cocok 'a' karakter diikuti oleh minimal dua karakter 'n'. Harus ada dua karakter 'n' untuk pertandingan terjadi.
  Teks: Anna Jones dan Anne dimiliki anaconda
 Regex: an {2}
 Pilihan: IgnoreCase
 Pertandingan: Ann Jones dan Ann e dimiliki anaconda
 Ann
 Ann 
Berbagai pertandingan bisa ditentukan oleh tanda kurung keriting dengan dua angka dalam ( { n , m } ). Angka pertama (n) adalah jumlah minimum yang diperlukan pertandingan, kedua (m) adalah jumlah maksimum yang diijinkan pertandingan. Ini Regular Expression cocok 'a' karakter diikuti oleh minimal dua karakter 'n' dan maksimal karakter tiga 'n'.
  Teks: Anna dan Anne makan siang dengan annnnnex anaconda
 Regex: an {2,3}
 Pilihan: IgnoreCase
 Pertandingan: Ann dan Ann e makan siang dengan anaconda annn nnex
 Ann
 Ann
 annn 
Regex berhenti setelah pencocokan jumlah maksimum pertandingan telah ditemukan.

Pencocokan awal dan akhir dari string

Untuk menentukan bahwa pertandingan harus jatuh pada awal string menggunakan karakter caret ( ^ ). Sebagai contoh, saya ingin pola Regular Expression untuk mencocokkan awal string diikuti dengan karakter 'a'.
  Teks: anaconda makan Anna Jones
 Regex: ^ a
 Pertandingan: anaconda n makan Anna Jones
 "A" pada posisi 1 
Pola di atas hanya cocok dengan dalam "an".
Perhatikan bahwa tanda sisipan ( ^ ) memiliki perilaku yang berbeda bila digunakan dalam tanda kurung siku.
Jika opsi Multiline aktif, tanda sisipan ( ^ ) akan cocok dengan awal setiap baris dalam string multiline bukan hanya awal dari string.
Untuk menentukan bahwa pertandingan harus jatuh pada akhir string menggunakan karakter dolar ( $ ). Jika opsi ini di kemudian Multiline pola akan cocok pada akhir setiap baris dalam string multiline. Pola Regular Expression sesuai kata pada akhir baris dalam string multiline.
  Teks: "anaconda
 makan Anna
 Jones "
 Regex: \ w + $
 Pilihan: Multiline, IgnoreCase
 Pertandingan: 
 Jones 
 
Source from HERE 
Diberdayakan oleh Blogger.