PanduanAwal Mengenai Ekspresi Biasa di PHP

Hai sana, para ahli PHP masa depan! Hari ini, kita akan melihat dunia yang menarik dari ekspresi biasa di 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 Biasa?

Sebelum kita masuk ke hal khusus PHP, mari kita pahami apa itu ekspresi biasa (regex). Bayangkan Anda adalah seorang detektif yang mencari pola tertentu di laut teks. Itu sebenarnya apa yang regex lakukan – membantu Anda mencari, mencocokkan, dan memanipulasi teks berdasarkan pola. Bagus, kan?

Ekspresi Biasa POSIX

Ekspresi biasa POSIX (Portable Operating System Interface) adalah standar asli untuk regex di PHP. Meskipun mereka tidak terlalu banyak digunakan saat ini, memahaminya dapat memberikan Anda dasar yang kuat.

Contoh Ekspresi Biasa POSIX Dasar

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" di 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 fungsi yang paling umum digunakan:

Fungsi Deskripsi
ereg() Cocok ekspresi biasa
eregi() Cocok ekspresi biasa tanpa perhatian huruf besar/kecil
ereg_replace() Ganti ekspresi biasa
split() Pisahkan string menjadi array berdasarkan ekspresi biasa

Contoh: Menggunakan eregi() untuk Cocokan Tanpa Perhatian Huruf Besar/Kecil

$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" dicapitalisasi dalam teks kita.

Ekspresi Biasa Gaya PERL

Sekarang, mari kita bicarakan ekspresi biasa yang lebih modern dan kuat, yaitu ekspresi biasa kompatibel PERL (PCRE). Ini adalah apa yang Anda kemungkinan akan gunakan dalam proyek PHP Anda.

Contoh PCRE Dasar

$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() bukan ereg().

Fungsi Regex PCRE di PHP

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

Fungsi Deskripsi
preg_match() Melakukan cocokan ekspresi biasa
preg_match_all() Melakukan cocokan global ekspresi biasa
preg_replace() Melakukan pencarian dan penggantian ekspresi biasa
preg_split() Pisahkan string berdasarkan ekspresi biasa

Contoh: Menggunakan preg_match_all() untuk Menemukan Semua Cocokan

$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 dalam array $matches.

Teknik PCRE Tingkat Lanjut

Sekarang kita telah menutupi dasar-dasar, mari kita lihat beberapa teknik yang lebih tingkat lanjut.

Metakarakter

Metakarakter adalah karakter khusus dalam regex yang memiliki arti khusus. Berikut adalah beberapa yang umum:

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

Contoh: Menggunakan Metakarakter

$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 menutupi 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 memvalidasi 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 @
  • Satu titik diikuti oleh dua atau lebih huruf di akhir

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dunia ekspresi biasa di PHP. Ingat, regex adalah alat yang kuat, tetapi juga bisa sulit. Kunci adalah latihan – semakin sering Anda menggunakannya, semakin nyaman Anda akan merasakan. Terus jelajahi, terus kode, dan terutama, bersenang-senang!

Credits: Image by storyset