PHP preg_match(): Ekspresi Reguler (Regex)

Apa itu ekspresi reguler di PHP?

Ekspresi Reguler PHP juga dikenal sebagai regex adalah algoritma pencocokan pola yang kuat yang dapat dilakukan dalam satu ekspresi. Ekspresi reguler menggunakan operator aritmatika seperti (+,-,^) untuk membuat ekspresi yang kompleks. Ekspresi reguler dapat membantu Anda menyelesaikan tugas seperti memvalidasi alamat email, alamat IP, dll.

Mengapa menggunakan ekspresi reguler

  • Ekspresi reguler PHP menyederhanakan pengidentifikasian pola dalam data string dengan memanggil satu fungsi. Ini menghemat waktu coding kita.
  • Saat memvalidasi masukan pengguna seperti alamat email, nama domain, nomor telepon, 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 bekerja dengan fungsi reguler yang akan kita pelajari dalam tutorial PHP Regular Expressions ini. Mari kita lihat fungsi ekspresi reguler yang umum digunakan di PHP.

  • preg_match() di PHP – fungsi ini digunakan untuk melakukan pencocokan pola di PHP pada sebuah string. Ia mengembalikan nilai true jika kecocokan ditemukan dan false jika kecocokan tidak ditemukan.
  • preg_split() di PHP – fungsi ini digunakan untuk melakukan pencocokan pola pada string dan kemudian membagi hasilnya menjadi array numerik
  • preg_replace() di PHP – fungsi ini digunakan untuk melakukan pencocokan pola pada string dan kemudian mengganti pencocokan dengan teks yang ditentukan.

Di bawah ini adalah sintaks untuk fungsi ekspresi reguler seperti PHP preg_match(), PHP preg_split() atau PHP preg_replace().

<?php
function_name('/pattern/',subject);
?>

SINI,

  • “function_name(…)” bisa berupa PHP preg_match(), PHP preg_split() atau PHP preg_replace().
  • “/…/” Garis miring menunjukkan awal dan akhir fungsi penguji regex PHP kami
  • “'/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 preg_match() dalam fungsi PHP untuk melakukan pencocokan pola sederhana untuk kata guru di URL tertentu.

Kode di bawah ini menunjukkan implementasi fungsi penguji 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";
}
?>

Telusuri ke URL http://localhost/phptuts/preg_match_simple.php

Fungsi Ekspresi Reguler bawaan

Mari kita periksa bagian kode yang bertanggung jawab atas keluaran kita “preg_match('/guru/', $url_saya)” 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.

Diagram di bawah ini merangkum poin-poin di atas

PHP Preg_split()

Sekarang mari kita lihat contoh lain yang menggunakan preg_split() dalam fungsi PHP.

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 );

?>

Telusuri ke URL http://localhost/phptuts/preg_split.php

PHP Preg_split()

PHP Preg_replace()

Sekarang mari kita lihat preg_replace() di 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 menggantikan kata guru dengan kata guru yang dikelilingi oleh kode css yang menonjolkan 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, browser ke URL http://localhost/phptuts/preg_replace.php

PHP Preg_replace()

Metakarakter Ekspresi Reguler

Contoh-contoh di atas menggunakan pola yang sangat mendasar; metakarakter hanya memungkinkan kita untuk melakukan pencocokan pola yang lebih kompleks seperti menguji validitas alamat email. Sekarang mari kita lihat metakarakter yang umum digunakan.

Metakarakter Description Example
. Cocok dengan karakter apa pun kecuali baris baru /./ cocok dengan apa pun yang memiliki satu karakter
^ Cocok dengan awal atau string/tidak termasuk karakter /^PH/ cocok dengan string apa pun yang dimulai dengan PH
$ Cocok dengan pola di akhir string /com$/ cocok dengan guru99.com,yahoo.com Dll.
* Cocok dengan nol (0) karakter atau lebih /com*/ cocok dengan komputer, komunikasi, dll.
+ Mengharuskan karakter sebelumnya muncul setidaknya sekali /yah+oo/ cocok dengan yahoo
\ Digunakan untuk menghindari karakter meta /yahoo+\.com/ memperlakukan titik sebagai nilai literal
[...] Kelas karakter /[abc]/ cocok dengan abc
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 rumit yang memeriksa keabsahan sebuah 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 “[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] ”

SINI,

  • “'/…/'” memulai dan mengakhiri ekspresi reguler
  • “^[a-zA-Z0-9._-]” cocok dengan huruf kecil atau besar, angka antara 0 dan 9, serta titik, garis bawah, atau tanda hubung.
  • “+@[a-zA-Z0-9-]” cocok dengan simbol @ diikuti oleh huruf kecil atau besar, angka antara 0 dan 9 atau tanda hubung.
  • “+\.[a-zA-Z.]{2,5}$/” lolos dari titik menggunakan garis miring terbalik lalu mencocokkan huruf kecil atau besar dengan panjang karakter antara 2 dan 5 di akhir string.

Telusuri ke URL http://localhost/phptuts/preg_match.php

[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]

Seperti yang dapat Anda lihat dari contoh pengelompokan di atas, metakarakter sangat berguna dalam hal pencocokan pola.

Kesimpulan

  • Ekspresi Reguler atau Regex di PHP adalah algoritma pencocokan pola
  • Ekspresi reguler sangat berguna saat melakukan pemeriksaan validasi, membuat sistem templat HTML yang mengenali tag, dll.
  • PHP telah membangun fungsi yaitu PHP preg_match(), PHP preg_split() dan PHP preg_replace() yang mendukung ekspresi reguler.
  • Metakarakter memungkinkan kita membuat pola yang kompleks