PHP - Ekspresi Reguler: Panduan untuk Pemula

Hai teman-teman, para ahli PHP masa depan! Hari ini, kita akan melihat dunia yang menarik dari ekspresi reguler (regex) dalam PHP. Jangan khawatir jika Anda belum pernah mengoding sebelumnya - saya akan menjadi panduan ramah Anda dalam perjalanan yang menarik ini. Mari kita mulai!

PHP - Regular Expression

Apa Itu Ekspresi Reguler?

Sebelum kita masuk ke bagian khusus PHP, mari kita pahami apa itu ekspresi reguler (regex). Bayangkan Anda adalah seorang detektif yang mencari pola tertentu di laut teks. Itu sebenarnya apa yang dilakukan regex - membantu Anda mencari, mencocokkan, dan memanipulasi teks berdasarkan pola. Keren, kan?

Ekspresi Reguler POSIX

Ekspresi reguler POSIX (Portable Operating System Interface) adalah standar asli untuk regex dalam PHP. Meskipun mereka tidak lagi digunakan secara umum, memahaminya dapat memberikan Anda dasar yang kuat.

Contoh Ekspresi Reguler Dasar POSIX

Mari kita mulai dengan contoh sederhana:

$text = "The quick brown fox jumps over the lazy dog.";
$pattern = "/quick/";
if (ereg($pattern, $text)) {
echo "Match found!";
} else {
echo "No match found.";
}

Dalam contoh ini, kita mencari kata "quick" dalam kalimat kita. Fungsi ereg() memeriksa apakah pola cocok di mana saja dalam teks.

Fungsi Regex POSIX di PHP

PHP menyediakan beberapa fungsi regex POSIX. Berikut adalah tabel dari yang paling umum digunakan:

Fungsi Deskripsi
ereg() Pencocokan ekspresi reguler
eregi() Pencocokan ekspresi reguler case-insensitive
ereg_replace() Penggantian ekspresi reguler
split() Memecah string menjadi array oleh ekspresi reguler

Contoh: Menggunakan eregi() untuk Pencocokan Case-Insensitive

$text = "The Quick Brown Fox";
$pattern = "quick";
if (eregi($pattern, $text)) {
echo "Match found!";
} else {
echo "No match found.";
}

Dalam contoh ini, kita akan menemukan cocok meskipun "Quick" dihuruf besar dalam teks kita.

Ekspresi Reguler gaya PERL

Sekarang, mari kita bicarakan tentang ekspresi reguler gaya PERL yang lebih modern dan kuat (PCRE). Ini adalah yang Anda kemungkinan akan gunakan dalam proyek PHP Anda.

Contoh Dasar PCRE

$text = "The quick brown fox jumps over the lazy dog.";
$pattern = "/quick/";
if (preg_match($pattern, $text)) {
echo "Match found!";
} else {
echo "No match found.";
}

Ini terlihat mirip dengan contoh POSIX kita, tetapi kita menggunakan preg_match() instead of ereg().

Fungsi Regex PERL Kompatibel di PHP

Fungsi PCRE di PHP lebih fleksibel dan efisien. Berikut adalah tabel dari fungsi PCRE yang umum digunakan:

Fungsi Deskripsi
preg_match() Melakukan pencocokan ekspresi reguler
preg_match_all() Melakukan pencocokan ekspresi reguler global
preg_replace() Melakukan pencarian dan penggantian ekspresi reguler
preg_split() Memecah string oleh ekspresi reguler

Contoh: Menggunakan preg_match_all() untuk Menemukan Semua Cocok

$text = "The quick brown fox jumps over the quick lazy dog.";
$pattern = "/quick/";
if (preg_match_all($pattern, $text, $matches)) {
echo "Found " . count($matches[0]) . " matches!";
print_r($matches);
} else {
echo "No matches found.";
}

Skrip ini akan menemukan semua kemunculan "quick" dalam teks kita dan menyimpannya di array $matches.

Teknik PCRE Tingkat Lanjut

Sekarang kita telah melihat dasar-dasar, mari kita lihat beberapa teknik tingkat lanjut.

Karakter Khusus

Karakter khusus adalah karakter khusus dalam regex yang memiliki makna khusus. Berikut adalah beberapa yang umum:

  • . : Cocokkan karakter tunggal manapun kecuali baris baru
  • ^ : Cocokkan awal string
  • $ : Cocokkan akhir string
  • * : Cocokkan nol atau lebih kemunculan
  • + : Cocokkan satu atau lebih kemunculan
  • ? : Cocokkan nol atau satu kemunculan

Contoh: Menggunakan Karakter Khusus

$text = "The quick brown fox jumps over the lazy dog.";
$pattern = "/^The/";
if (preg_match($pattern, $text)) {
echo "The text starts with 'The'";
} else {
echo "The text does not start with 'The'";
}

Skrip ini memeriksa apakah teks kita dimulai dengan "The".

Kelas Karakter

Kelas karakter memungkinkan Anda mencocokkan salah satu karakter dari set karakter. Mereka ditutup dalam kurung siku [].

Contoh: Menggunakan Kelas Karakter

$text = "The quick brown fox jumps over the lazy dog.";
$pattern = "/[aeiou]/i";
if (preg_match_all($pattern, $text, $matches)) {
echo "Found " . count($matches[0]) . " vowels!";
print_r($matches);
} else {
echo "No vowels found.";
}

Skrip ini menemukan semua vokal dalam teks kita. Penambahan i di akhir pola membuatnya case-insensitive.

Aplikasi Praktis

Sekarang kita telah melihat dasar-dasar dan beberapa teknik tingkat lanjut, mari kita lihat aplikasi nyata.

ValidasiAlamat Email

$email = "[email protected]";
$pattern = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/";
if (preg_match($pattern, $email)) {
echo "Valid email address!";
} else {
echo "Invalid email address!";
}

Skrip ini menggunakan pola regex yang kompleks untuk validasi alamat email. Itu memeriksa:

  • Satu atau lebih huruf, angka, titik, garis bawah, tanda persen, tanda plus, atau tanda minus sebelum @
  • Satu atau lebih huruf, angka, titik, atau garis bawah setelah @
  • Titik diikuti oleh dua atau lebih huruf di akhir

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dunia ekspresi reguler dalam PHP. Ingat, regex adalah alat yang kuat, tetapi juga dapat sulit. Kunci adalah latihan - semakin banyak Anda gunakan, semakin nyaman Anda akan merasakan.

Sekarang Anda teruskan perjalanan PHP Anda, Anda akan menemukan regex sangat berguna untuk tugas seperti validasi formulir, penguraian data, dan manipulasi teks. Terus jelajah, terus kode, dan terutama, bersenang-senang!

Credits: Image by storyset