Regular Expression

Monday, December 11, 2006

Sintaks dalam Regular Expression

\a = Karakter bell (alarm)
\b = Backspace
\t = Tabulator
\r = Return (carriage return)
\v = Tab vertikal
\f = Pindah halaman (form feed)
\n = Baris baru (line feed)
\e = Escape


Perintah dalam Regular Expression

[abcd] = Sesuai dengan semua karakter yang ada di dalam tanda kurung siku.
[^abc] = Sesuai dengan semua karakter yang tidak ada di dalam tanda kurung siku.
[0-9] = Tanda penghubung (minus) digunakan sebagai jangkauan karakter.
. = Tanda titik berarti sesuai dengan semua karakter, kecuali baris baru (\n).
\w = Sesuai dengan semua karakter atau kata, ekuivalen dengan [a-zA-Z_0-9].
\W = Sesuai dengan non-karakter, ekuivalen dengan [^a-zA-Z_0-9].
\s = Sesuai dengan karakter kosong, ekuivalen dengan \f, \n, \r, \t, dan \v.
\S = Tidak sesuai dengan semua karakter kosong.
\d = Sesuai dengan angka antara 0 sampai 9.
\D = Tidak sesuai dengan angka antara 0 sampai 9.


Patern dalam Regular Expression

^ = Tanda Awal dari String
+ = 1 atau lebih dari expresi sebelumnya
* = 0 atau lebih dari expresi sebelumnya
? = 0 atau satu dari expresi sebelumnya
{n} = Tepat jumlah n dari expresi sebelumnya
{n,} = Minimum sebanyak n expresi sebelumnya atau lebih
{n,m} = minimum sebanyak n expresi sebelumnya, maximum sebanyak m expresi sebelumnya
[...] = Menyatakan sebuah group dari karakter .cth : [a-z] -> satu group yang terisi oleh karakter 'a' sampai 'z'
[^...] = Menyatakan sebuah negasi dari group yang berisi karakter . cth [^a-z] -> sebuah group yang terisi oleh karakter selain 'a' - 'z'
$ = Tanda akhir dari String


Contoh Mudah Regular Expression

  • Tahun tidak boleh lebih dari 2000. Dan boleh juga dua angka dibelakangnya sahaja dimahukan
    (^(20)\d\d$)|(^\d{2}$)
  • IP (Internet Protocol) versi 4 dituliskan seperti contoh berikut: 192.168.0.3
    \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
  • alamat email: anda@domainname.com
    ^([\w-]+)@([\w-]+\.)+[A-Za-z]{2,3}$
  • format tarikh dd/mm/yyyy
    ^0[1-9]{1}|^[12][0-9]|3[01])-(0[1-9]|1[012])-(19|20)\d\d$
  • cara lain untuk tarikh dd-mm-yyyy
    ^0[1-9]{1}|^[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)\d\d$
  • Username untuk satu perkataan sahaja tanpa ada ruang kosong, ayus
    ^[A-Za-z]+$
  • url, contoh http://www.nursyuhada.com
    http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
  • hanya menerima string "tes"
    ^tes$
  • menerima string yang memiliki kata tes
    tes
  • menerima sebuah huruf 't' atau 'e' atau 's'
    ^[tes]$
  • menerima satu huruf atau lebih yang terdiri dari huruf 't' atau 'e' atau 's'
    ^[tes]+$
  • hanya menerima string "ttt"
    ^t{3}$
  • menerima 1 huruf selain huruf 't' atau 'e' atau 's'
    ^[^tes]$

1 comments:

ayus said...

Pendaftaran subjek di UTM

Kod subjek yang biasa digunakan
SCK4032

^[A-Z]{3}\d{4}$

Jika ada ruang kosong antara huruf dan nombor
SCK 4032

^[A-Z]{3}\s\d{4}$ -> di mana \s menandakan ada satu ruang kosong.


ada beberapa perkara perlu dilihat.

Jika kita tak pasti ada ruang kosong atau tak, guna \s, ia merujuk kepada 1 ruang kosong atau 0 ruang kosong.

Jika ada satu atau lebih, guna +, ia merujuk kepada 1 @ >

Jika tiada ruang kosong, atau ada dan berkemungkinan lebih dr 1, guna *, ia merujuk 0 @ >


boleh dilihat pada tutorial kat atas