Belajar sedikit tengang regular expression
apa itu regular expression ?
Programmer atau para IT pasti sudah tidak asing dengan yang satu ini. Regular Expression atau yang lebih sering disebut regex merupakan sebuah teknik yang digunakan untuk mencocokan string teks, seperti karakter tertentu, kata-kata, atau pola karakter. RegEx memiliki 2 fungsi utama yakni mencari dan mengganti, mencari suatu pola tertentu dalam text lalu menggantinya menjadi pola yang lain. Regular Expression digunakan oleh banyak teks editor, utilities, dan bahasa pemrograman untuk pencarian dan memanipulasi teks berdasarkan pola. Misalnya, Perl, Ruby dan Tcl memiliki engine Regular Expression yang kuat dibangun pada syntax mereka.
Prinsip Kerja REGEX
Engine RegEx terdiri dari 2 jenis Text-directed engine dan regex-directed engine atau ada juga yang mengatakan DFA (Deterministic Finite Automaton) dan NFA (Nondeterministic Finite Automaton) engines. Namun jenis mesin engine yang lebih banyak diminati adalah regex-directed engine, disamping itu featurenya lebih hebat dari text-directed engine.
begitulah regullar expresion , berikut sedikit tutorial regex nya .
----------
Assertion
----------
^ = awal kata
$ = ahkir kata
\b = batas kata
\B = batas non kata
-----
Atom
-----
. = sembarang karakter kecuali newline
[] = salah satu karakter yang di dalam kurung
[^ ] = bukan salah satu karakter yang di dalam kurung
| = kemunkinan dari suatu string
() = sembarang regular experssion yang cocok
----------
Quantifier
----------
* = nol atau lebih instan atom
+ = satu atau lebih instan dari atom
? = nol atau satu instan dari atom
{n} = n instan dari atom
{n,} = sedikitanya n instan dari atom
{n,m} = sedikinya n dan paling banyak m
n-m = n sampai m
------------------------
Symbol / karakter khusus
------------------------
\d = sembarang digit
\D = sembarang non digit
\n = newline
\r = carriage return
\t = tab
\f = formfeed
\s = karakter white space
\S = karakter non white space
\w = alfanumerik
\W = karakter non alfanumerik
Kita coba penarapanya dalam perl dan php
perl
#!/usr/sbin/perl
$url = "http://www.example.cn";
if ($url =~ /^http:\/\/www\.(.+)$/i){print $1;}
else{ die "wrong\n";}
hasilnya dari program diatas yaitu example.cn
php
$url = "http://www.example.cn";
if(@eregi("^http:\/\/www\.(.+)$", $url, $hasil)){
echo $hasil[1];}