Apa itu Ekspresi Reguler?
Ekspresi reguler (regular expression) adalah sebuah bahasa formal untuk mencocokkan dan memanipulasi teks berdasarkan pola tertentu. Ekspresi reguler biasanya digunakan dalam pengolahan teks untuk melakukan pencarian, penggantian, dan validasi data yang kompleks.
Dalam ekspresi reguler PHP, kita dapat menggunakan karakter khusus dan meta-karakter untuk membangun pola kecocokkan yang kita inginkan. Karakter khusus dapat digunakan untuk memilih karakter khusus tertentu seperti spasi, tab, atau baris baru. Meta-karakter seperti *, + dan ? juga dapat digunakan untuk membangun pola yang lebih kompleks.
Penggunaan ekspresi reguler di PHP sangat berguna dalam melakukan manipulasi teks dan validasi input data yang kompleks, seperti validasi format email, nomor telepon, atau format tanggal.
Sintaks
Dalam PHP, ekspresi reguler adalah string yang terdiri dari pembatas, pola, dan pengubah opsional.
$exp = "/nextgen.co.id/i";
Dalam contoh di atas, / adalah pembatas, nextgen.co.id adalah pola yang sedang dicari, dan i adalah pengubah yang membuat pencarian case-insensitive.
Pembatas dapat berupa karakter apa saja yang bukan huruf, angka, garis miring terbalik, atau spasi. Pembatas yang paling umum adalah garis miring ke depan (/), tetapi jika pola Anda berisi garis miring ke depan, sebaiknya pilih pembatas lain seperti # atau ~.
Fungsi Ekspresi Reguler
Dalam PHP, ekspresi reguler ditulis dalam format tertentu dan dapat digunakan dengan menggunakan fungsi-fungsi preg_match, preg_match_all, preg_replace dan beberapa fungsi lain yang tersedia.
Fungsi | Deskripsi |
---|---|
preg_match | Mengembalikan 1 jika pola ditemukan dalam string dan 0 jika tidak |
preg_match_all | Mengembalikan berapa pola ditemukan dalam string, yang mungkin juga 0 |
preg_replace | Mengembalikan string baru di mana pola yang cocok telah diganti dengan string lain |
Menggunakan preg_match
Fungsi preg_match adalah sebuah fungsi pada PHP yang digunakan untuk mencocokkan pola (pattern matching) pada sebuah string menggunakan ekspresi reguler. Fungsi ini mengembalikan nilai boolean true jika pola ditemukan pada string, atau false jika pola tidak ditemukan.
Contoh
Gunakan ekspresi reguler untuk melakukan penelusuran case-insensitive untuk “nextgen.co.id” dalam sebuah string:
<!DOCTYPE html>
<html>
<body>
<?php
$str = "Kunjungi nextgen.co.id";
$pola = "/nextgen.co.id/i";
echo preg_match($pola, $str);
?>
</body>
</html>
Menggunakan preg_match_all
Fungsi preg_match_all adalah fungsi pada PHP yang digunakan untuk mencocokkan semua kemunculan pola tertentu pada sebuah string menggunakan ekspresi reguler. Fungsi ini akan mengembalikan semua kemunculan pola yang ditemukan pada string dalam bentuk array.
Contoh
Gunakan ekspresi reguler untuk menghitung jumlah kemunculan “an” dalam string:
<!DOCTYPE html>
<html>
<body>
<?php
$str = "Hujan turun di SPANYOL terutama di dataran.";
$pola = "/an/i";
echo preg_match_all($pola, $str);
?>
</body>
</html>
Menggunakan preg_replace
Fungsi preg_replace adalah sebuah fungsi pada PHP yang digunakan untuk mencari dan mengganti semua kemunculan pola tertentu pada sebuah string menggunakan ekspresi reguler. Fungsi ini akan mengembalikan string baru yang telah mengalami penggantian sesuai dengan pola yang dicari.
Contoh
Gunakan ekspresi reguler case-insensitive untuk mengganti Microsoft dengan nextgen.co.id dalam sebuah string:
<!DOCTYPE html>
<html>
<body>
<?php
$str = "Kunjungi Microsoft!";
$pola= "/microsoft/i";
echo preg_replace($pola, "nextgen.co.id", $str);
?>
</body>
</html>
Pengubah Ekspresi Reguler
Pengubah dapat mengubah cara pencarian kecocokan dilakukan.
Pengubah | Deskripsi |
---|---|
i | Melakukan pencarian case-sensitive |
m | Melakukan pencarian multibaris (pola yang mencari awal atau akhir string akan cocok dengan awal atau akhir setiap baris) |
u | Memungkinkan pencocokan yang benar dari pola kode UTF-8 |
Pola Ekspresi Reguler
Tanda kurung buka dan tutup digunakan untuk menentukan pola yang akan dicari dan dicocokkan:
Ekspresi | Deskripsi |
---|---|
[abc] | Temukan satu karakter dari pilihan karakter di antara tanda kurung |
[^abc] | Temukan karakter apa pun yang BUKAN di antara tanda kurung |
[0-9] | Temukan satu karakter dari rentang 0 hingga 9 |
Metakarakter
Metakarakter adalah karakter dengan arti khusus:
Metakarakter | Deskripsi |
---|---|
| | Temukan kecocokan untuk salah satu pola yang dipisahkan oleh | seperti pada: kucing|anjing|ikan |
. | Temukan hanya satu karakter dari karakter apa pun |
^ | Menemukan kecocokan sebagai awal string seperti di: ^Halo |
$ | Menemukan kecocokan di akhir string seperti di: Dunia$ |
\d | Cari angka |
\s | Cari karakter spasi |
\b | Cari kecocokan di awal kata seperti ini: \bWORD, atau di akhir kata seperti ini: WORD\b |
\uxxxx | Temukan karakter Unicode yang ditentukan oleh angka heksadesimal xxxx |
Penghitung
Penghitung menentukan jumlah:
Penghitung | Deskripsi |
---|---|
n+ | Cocok dengan string apa pun yang berisi setidaknya satu n |
n* | Cocok dengan string apa pun yang berisi nol atau lebih kemunculan n |
n? | Cocok dengan string apa pun yang berisi nol atau satu kemunculan n |
n{x} | Cocok dengan string apa pun yang berisi urutan X n‘s |
n{x,y} | Mencocokkan string apa pun yang berisi urutan X ke Y n‘s |
n{x,} | Cocok dengan string apa pun yang berisi urutan minimal X n |
Catatan: Jika ekspresi Anda perlu mencari salah satu karakter khusus, Anda dapat menggunakan garis miring terbalik ( \ ) untuk menghindarinya. Misalnya, untuk mencari satu atau lebih tanda tanya, Anda dapat menggunakan ekspresi berikut: $pola = ‘/\?+/’;
Pengelompokan
Anda dapat menggunakan tanda kurung ( ) untuk menerapkan pengelompokkan kepada suatu pola. Cara ini juga dapat digunakan untuk memilih bagian dari pola yang akan digunakan sebagai pencocokan.
Contoh
Gunakan pengelompokan untuk menelusuri kata “belalang” dengan mencari kata be diikuti dengan dua kata la:
<!DOCTYPE html>
<html>
<body>
<?php
$str = "ular dan belalang.";
$pola= "/be(la){2}/i";
echo preg_match($pola, $str);
?>
</body>
</html>
Tutorial sebelumnya : PHP var_dump
Tutorial setelahnya : PHP Date Dan PHP Time
Semua Tutorial PHP : Tutorial PHP