PHP Regular Expression

PHP Regular Expression

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>

Tinggalkan Balasan

Keranjang Belanja0
Keranjang belanja kosong ...
0