Dasar Teori Regex

Sebelum bermain-main dengan regex  kita akan memahami dasar-dasarnya terlebih dahulu. salah satu fungsi yang dapat digunakan untuk operasi regex adalah:

ereg(string_pola, string_sumber);

fungsi ini akan menghasilkan TRUE, jika ternyata pola cocok dengan sumber dan FALSE jika keduanya tidak cocok.

pola dari fungsi  di atas adalah rumus dari data text yang diinginkan. Cara membuat rumus canggih ini dengan menggunakan karakter meta. singkatnya meta itu adalah karakter yang memiliki arti tertentu. contoh pada perintah DOS adalah  DIR *.*, karakter * tidak diartikan sebagai karakter bintang oleh komputer melainkan mempunyai arti khusus.

ada beberapa karakater meta yang perlu di ketahui, yaitu :

Karakter meta | (Garis Vertikal)

  • Karakter | artiknya menjadikan karakter meta text sebagai pilihan pada pola untuk di cocokan dengan sumber. Contoh: ereg(Uus | Lukman |Nanang, Lukman) Artinya akan TRUE karena Lukman adalah salah satu pilihan dari pola. namun jika sumbernya ternyata adalah Hasan, hasilnya akan FALSE alias tidak cocok, karena hasan tidak ada pada salah satu pilihan tersebut.  ( dan ), karakter kurung buka dan kurung tutup karakter kurung buka dan kurung tutup berguna untuk mengelompokan beberapa kata atau data text agar dianggap menjadi suatu kesatuan. Contoh:   ureg((Uus Musailini)|(Lukmanul Hakim)|Nanang, Lukmanul); Hasil penyataan regex di atas adalah FALSE alias tidak cocok , karena Lukmanul Hakim adalah satu kesatuan, sehingga tidak sama Lukmanul saja.

Karakter [dan] kurung siku buka dan tutup.

  • pada prinsipnya tanda kurung siku buka dan tutup sama dengan karakter | yaitu memberikan pilihan. namun pada karakter kurung siku mempunyai sintak rentang [awal-akhir] dan negasi [^teks]. ingat tanda ^ hanya berarti narasi jika di gunakan di awal karakter yang ada dalam kurung siku, sedangkan jika ada di luar kurung siku akan berarti “di awal”, misalkan untuk pemilihan angka dari 10 sampai 16 adalah: [10-16], sedangkan untuk pemilahan angka selain angka 17 adalah :[^17] klo belum jelas perhatikan contoh berikut ini

1.  Jika pola:[LBSTD]ayang, akan cocok dengan sumber : Layang, Bayang, Sayang, Tayang dan Dayang, selain itu

hasilnya    akan FALSE atau tidak cocok.

2. Jika pola[^R]agu akan cocok dengan kata agu yang akan diawali oleh huruf apapun kecuali huruf R, yaitu Ragu

3. pola: [^0-9] akan cocok dengan karakter apapun kecuali angka.

4. jika pola: ber[2-4]an, akan cocok dengan sumber, ber2an, ber3an dan ber4an. Selain itu FALSE

   Karakter ? (Tanda tanya )

  • Fungsinya untuk menyatakan bahwa sebuah karakter di sebelah kirinya boleh ada atau tidak ada, Contohnya;

1. Jika pola: yac?h maka akan cocok yach atau yah

2. Jika pola: bu(ai)?kan maka akan cocok dengan buaikan dan bukan

3. jika pola: [tb](i|u)(ku)?  bisa, ti, tu, bi, bu, tiku, tuku, biku dan buku

Karakter jangkar (^ dan $)

  • karakter ini berfungsi untuk menyatakan posisi dari dari pola, yaitu karakter ^ untuk menyatakan di awal sedangkan karakter $ untuk posisi terakhir, Contoh:

1.  Jika pola: ^ uus tidak akan cocok dengan karakter mas uus , kak uus, tetapi kalo uus ku  baru cocok

2. jika pola: uus$ maka akan cocok dengan mas uus, kak uus tetapi tidak cocok dengan uus ku

3. dan jika pola: ^lukman$ maka akan hanya cocok dengan lukman doank.

Karakter titik (.)

  • Karakter ini berfungsi untuk mewakili  sebuah karakter tunggal apapun, Contoh:

1. jika sebuah pola seperti ..S, hanya akan cocok dengan sumber yang berupa kata yang terdiri dari tiga huruf dan berakhir

dengan huruf S, contoh IIS, iiS, uuS, UUS, IUS, AIS dan sebagainya

Karakter + (tambah)

  •           meta + mewakili setidaknya satu dari sekelompok karakter dari  kiri tanda + tersebut, Contoh

1. pola: (na|ni)+ akan mewakili atau cocok dengan sumber berupa na, ni, nanana, nini, setidaknya ada satu karakter dari

sebelah kiri karakter + .

2. Pola: [0-9]+ akan cocok dengan sumber angka berapapun.

3. pola: [a-z][A-Z]+ akan cocok dengan huruf apapun, baik huruf kapital ataupun huruf kecil.

Karakter * (bintang)

  •  Fungsinya sama dengan tanda +, bedanya pada tanda asterik ini karakter di sebelah kiri boleh ada atau tidak. contoh:

1. (AWAS)!* akan cocok dengan AWAS!, AWAS, AWAS!!!! dan lain-lain.

Karakter { dan } (tutup dan buka kurawal)

  • Fungsi untuk menangani pengulangan karakter di sebelah kiri tanda, b{3} akan cocok dengan bbb, ^A[2] akan cocok dengan karakter apapun yang di awali dengan AA, misalnya: AA, AAng, AAn dan lain-lain, pola r{3}$ akan cocok dengan sumber berupa kata apapun yang berakhiran rrr, misalkan gerrr, byurrr, dooorrr dan lain-lain.
  • Selain karakter meta di atas PHP juga menyediakan class karakter yang fungsinya sama dengan meta, beberapa class di php tersebut yaitu, [[:alpa]] akan berarti sembarang huruf, [[:digit]] akan mengwakilik angka, [[[:alnum]] akan berarti angka atau digit, [[:space]] akan berarti sembarang space, [[:upper]] akan berarti sembarang huruf kapital dan [[:lower]] akan berarti sembarang huruf kecil.

Sampai disini saja tulisan pada halaman ini tentang tutorial regex

Referensi:

Di Sadur dari buku 150 Rahasia dan Trik Menguasai PHP yang di karang oleh Lukmanul Hakim dan Uus Musalini.

  1. ada pembelajaran lanjutan mengenai regex ???

  1. No trackbacks yet.

Leave a comment