Kategori
PHP

Regular Expression (Regex) dengan PHP

Discussion Board : Mengenal Regular Expression dalam PHP, beserta contoh – contoh kasus singkat dari penggunaan PHP Regex.
Requirement : webserver package, already installed (atau sebenarnya PHP saja sudah cukup, tanpa mysql atau apache).

Regex? What it is?
Regular Expression (Regex) adalah suatu konsep pencocokan pola (pattern matching) di dalam suatu string. Pada umumnya, regular expression digunakan untuk validasi (dalam sebuah pembangunan sistem informasi), atau digunakan untuk proses pengolahan teks (text processing). Namun, adakalanya regular expression juga sering digunakan dalam Information Retrieval.

Tutorial – tutorial dibawah ini akan mengkover kasus – kasus yang bisa ditangani dengan Regex, sebagai contoh pattern matching dengan menggunakan Regex.

1. Apakah pattern “indomie” ada dalam string?

[sourcecode language=”php”]
$string = ‘iloveindomieverymuch’;

$isMatch = preg_match("/indomie/", $string); //here the regex

echo $isMatch;
[/sourcecode]

Script diatas akan menghasilkan output “1” karena pattern “indomie” ada dalam string “iloveindomieverymuch”. Dapat dilihat, bahwa preg_match akan menghasilkan nilai boolean 1 apabila ditemukan matching, dan 0 apabila tidak ditemukan.

2. Apakah string dimulai dengan pattern “ilove” ?
Untuk pengecekan awal string, dapat digunakan simbol ^

[sourcecode language=”php”]
<?php
$string = ‘iloveindomieverymuch’;
isMatch = preg_match("/^ilove/", $string)

if($isMatch) {
echo ‘The string begins with ilove’; //if there’s a match
}
else {
echo ‘The string does not begin with ilove’; //if there isn’t match
}
?>
[/sourcecode]

Script diatas akan menghasilkan output seperti berikut,
The string begins with ilove

3. Apakah string diakhiri dengan pattern “much” ?
Dapat digunakan pattern $, atau mungkin lebih baik dengan seperti dibawah ini,

[sourcecode language=”php”]
<?php
$string = ‘iloveindomieverymuchactually’;
isMatch = preg_match("/much\z/i", $string)

if($isMatch) {
echo ‘The string ends with much’; //if there’s a match
}
else {
echo ‘The string does not end with much’; //if there isn’t match
}
?>
[/sourcecode]

Apabila dijalankan, script diatas akan memberikan output sebagai berikut,
The string does not end with much
Hal ini dikarenakan preg_match memberikan nilai 0, karena string tidak memenuhi rule yang ditetapkan dengan regex.

4. String, termasuk huruf atau angka?
Script dibawah akan mengecek apakah suatu kata termasuk number (angka), ataukah tersusun dari huruf (name).

[sourcecode language=”php”]
<?php
$word= ‘ALAN’;
if(preg_match("/^[A-Z]/", $word)) {
$type = ‘name’;
}
else if(preg_match("/^[0-9]/", $word)) {
$type = ‘number’;
}
echo $type;
?>
[/sourcecode]

Output yang mungkin dihasilkan dari script diatas adalah sebagai berikut,
name

Namun apabila kita mengganti $word diatas dengan string “1231”, maka akan dihasilkan output,
number

Tutorial diatas hanya memberikan contoh melakukan regular expression dengan preg_match. Tentu ada yang lain, dalam PHP sendiri untuk penggunaan regular expression dapat digunakan dengan fungsi – fungsi seperti preg_match_all, ereg, eregi, ereg_replace, preg_replace.
… dan lain-lain.

Untuk cheatsheet PHP regular expression, dapat dikunjungi disini.

Ok, Happy Coding 😀