PHP preg_match(): Ekspresi Reguler (Regex)
โก Ringkasan Cerdas
Ekspresi Reguler di PHP adalah alat pencocokan pola yang memvalidasi, memisahkan, dan mengganti teks dalam satu ekspresi. Panduan ini mencakup fungsi inti preg_match, preg_split, dan preg_replace, menjelaskan metakarakter umum, dan membangun pola validasi email yang berfungsi langkah demi langkah.

Apa itu ekspresi reguler di PHP?
Ekspresi reguler PHPEkspresi reguler, juga dikenal sebagai regex, adalah alat pencocokan pola yang ampuh yang dapat dilakukan dalam satu ekspresi. Ekspresi reguler menggunakan karakter khusus seperti +, -, dan ^ untuk membuat ekspresi yang kompleks. Ekspresi ini dapat membantu Anda menyelesaikan tugas-tugas seperti memvalidasi alamat email, alamat IP, dan banyak lagi.
Mengapa menggunakan ekspresi reguler
- Ekspresi reguler PHP menyederhanakan identifikasi pola dalam data string dengan memanggil satu fungsi. Ini menghemat waktu pengkodean kita.
- Saat memvalidasi input pengguna seperti alamat email, nama domain, nomor telepon, dan alamat IP.
- Menyoroti kata kunci dalam hasil pencarian
- Saat membuat template HTML khusus. Regex di PHP dapat digunakan untuk mengidentifikasi tag template dan menggantinya dengan data sebenarnya.
Fungsi Ekspresi Reguler bawaan di PHP
PHP memiliki fungsi bawaan yang memungkinkan kita untuk bekerja dengan ekspresi reguler, yang akan kita pelajari dalam tutorial ini. Mari kita lihat fungsi ekspresi reguler yang umum digunakan di PHP.
- Fungsi `preg_match()` di PHP digunakan untuk melakukan pencocokan pola pada sebuah string. Fungsi ini mengembalikan nilai `true` jika ditemukan kecocokan dan `false` jika tidak ditemukan kecocokan.
- Fungsi preg_split() di PHP digunakan untuk mencocokkan pola pada sebuah string dan kemudian memisahkan hasilnya ke dalam array numerik.
- preg_replace() di PHP โ fungsi ini digunakan untuk melakukan pencocokan pola pada string dan kemudian mengganti pencocokan dengan teks yang ditentukan.
Berikut adalah sintaks untuk fungsi ekspresi reguler seperti preg_match(), preg_split(), atau preg_replace().
<?php
function_name('/pattern/',subject);
?>
SINI,
- โfunction_name(โฆ)โ bisa berupa preg_match(), preg_split(), atau preg_replace().
- โ/โฆ/โ garis miring menunjukkan awal dan akhir ekspresi reguler kita.
- โ'/pattern/'โ adalah pola yang perlu kita cocokkan.
- "subjek" adalah string teks yang akan dicocokkan
Sekarang mari kita lihat contoh praktis yang mengimplementasikan fungsi regex PHP di atas.
Preg_match() di PHP
Contoh pertama menggunakan fungsi preg_match() untuk melakukan pencocokan pola sederhana untuk kata guru dalam suatu teks yang diberikan. URL.
Kode di bawah ini menunjukkan implementasi fungsi preg_match() untuk contoh di atas.
<?php $my_url = "www.guru99.com"; if (preg_match("/guru/", $my_url)) { echo "the url $my_url contains guru"; } else { echo "the url $my_url does not contain guru"; } ?>
Jelajahi URL http://localhost/phptuts/preg_match_simple.php
Mari kita periksa bagian kode yang bertanggung jawab atas output kita, preg_match('/guru/', $my_url). DI SINI,
- โpreg_match(โฆ)โ adalah fungsi regex PHP
- โ'/guru/'โ adalah pola ekspresi reguler yang harus dicocokkan
- โ$my_urlโ adalah variabel yang berisi teks yang akan dicocokkan.
PHP Preg_split()
Sekarang mari kita lihat contoh lain yang menggunakan fungsi preg_split().
Kami akan mengambil frase string dan meledakkannya menjadi sebuah array; pola yang akan dicocokkan adalah satu spasi.
String teks yang akan digunakan dalam contoh ini adalah โSaya Suka Ekspresi Regulerโ.
Kode di bawah ini mengilustrasikan implementasi contoh di atas.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Jelajahi URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Sekarang mari kita lihat preg_replace(). Fungsi PHP yang melakukan pencocokan pola dan kemudian mengganti pola tersebut dengan sesuatu yang lain.
Kode di bawah ini mencari kata guru di a string.
Ini mengganti kata "guru" dengan kata "guru" yang dikelilingi oleh kode CSS yang menyoroti warna latar belakang.
<?php $text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com"; $text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text); echo $text; ?>
Dengan asumsi Anda telah menyimpan file preg_replace.php, buka folder tersebut. URL http://localhost/phptuts/preg_replace.php
Metakarakter Ekspresi Reguler
Contoh-contoh di atas menggunakan pola yang sangat mendasar. Metakarakter memungkinkan kita untuk melakukan pencocokan pola yang lebih kompleks, seperti menguji validitas alamat email. Sekarang mari kita lihat metakarakter yang umum digunakan.
| Metakarakter | Deskripsi | Example |
|---|---|---|
| . | Cocok dengan karakter apa pun kecuali baris baru | /./ cocok dengan apa pun yang memiliki satu karakter |
| ^ | Mencocokkan bagian awal string atau mengecualikan karakter. | /^PH/ cocok dengan string apa pun yang dimulai dengan PH |
| $ | Mencocokkan pola di akhir string | /com$/ cocok dengan guru99.com, yahoo.com, dll. |
| * | Cocok dengan nol atau lebih karakter sebelumnya | /com*/ cocok dengan komputer, komunikasi, dll. |
| + | Membutuhkan karakter sebelumnya muncul setidaknya sekali. | /yah+oo/ cocok dengan yahoo |
| \ | Digunakan untuk menghindari metakarakter | /yahoo+\.com/ memperlakukan titik sebagai nilai literal |
| [...] | Kelas karakter | /[abc]/ cocok dengan a, b atau c |
| AZ | Cocok dengan huruf kecil | /az/ cocok dengan keren, bahagia dll. |
| AZ | Cocok dengan huruf besar | /AZ/ cocok dengan APA, BAGAIMANA, MENGAPA, dll. |
| 0-9 | Cocok dengan angka apa pun antara 0 dan 9 | /0-4/ cocok dengan 0,1,2,3,4 |
Daftar di atas hanya memberikan metakarakter yang paling umum digunakan dalam ekspresi reguler.
Sekarang mari kita lihat contoh yang cukup kompleks yang memeriksa keabsahan alamat email.
<?php $my_email = "name@company.com"; if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) { echo "$my_email is a valid email address"; } else { echo "$my_email is NOT a valid email address"; } ?>
Menjelaskan Pola Validasi Email
SINI,
- โ/โฆ/โ memulai dan mengakhiri ekspresi reguler.
- โ^[a-zA-Z0-9._-]โ cocok dengan huruf besar atau kecil apa pun, angka antara 0 dan 9, serta titik, garis bawah, atau tanda hubung.
- โ+@[a-zA-Z0-9-]โ cocok dengan simbol @ yang diikuti oleh huruf kecil atau besar, angka antara 0 dan 9, atau tanda hubung.
- โ+\.[a-zA-Z.]{2,5}$/โ mengescape titik menggunakan garis miring terbalik, lalu mencocokkan huruf kecil atau besar apa pun dengan panjang karakter antara 2 dan 5 di akhir string.
Jelajahi URL http://localhost/phptuts/preg_match.php
Seperti yang dapat Anda lihat dari uraian di atas, metakarakter sangat ampuh dalam hal mencocokkan pola.




