Ekspresi Reguler PHP
Apa itu Ekspresi Reguler?
Ekspresi reguler adalah urutan karakter yang membentuk pola pencarian. Saat Anda mencari data dalam teks, Anda dapat menggunakan pola pencarian ini untuk menjelaskan apa yang Anda cari.
Ekspresi reguler dapat berupa karakter tunggal, atau pola yang lebih rumit.
Ekspresi reguler dapat digunakan untuk melakukan semua jenis pencarian teks dan operasi penggantian teks.
Sintaksis
Dalam PHP, ekspresi reguler adalah string yang terdiri dari pembatas, pola, dan pengubah opsional.
$exp = "/w3schools/i";
Pada contoh di atas, /
adalah pembatas , w3schools adalah pola yang sedang dicari, dan i
merupakan pengubah yang membuat pencarian tidak peka huruf besar/kecil.
Pembatas dapat berupa karakter apa pun yang bukan huruf, angka, garis miring terbalik, atau spasi. Pembatas yang paling umum adalah garis miring (/), tetapi ketika pola Anda berisi garis miring, akan lebih mudah untuk memilih pembatas lain seperti # atau ~.
Fungsi Ekspresi Reguler
PHP menyediakan berbagai fungsi yang memungkinkan Anda menggunakan ekspresi reguler. ,
preg_match()
dan fungsi adalah beberapa preg_match_all()
yang preg_replace()
paling umum digunakan:
Function | Description |
---|---|
preg_match() | Returns 1 if the pattern was found in the string and 0 if not |
preg_match_all() | Returns the number of times the pattern was found in the string, which may also be 0 |
preg_replace() | Returns a new string where matched patterns have been replaced with another string |
Menggunakan preg_match()
Fungsi preg_match()
akan memberi tahu Anda apakah string berisi kecocokan suatu pola.
Contoh
Gunakan ekspresi reguler untuk melakukan pencarian case-insensitive untuk "w3schools" dalam sebuah string:
<?php
$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo
preg_match($pattern, $str); // Outputs 1
?>
Menggunakan preg_match_all()
Fungsi preg_match_all()
ini akan memberi tahu Anda berapa banyak kecocokan yang ditemukan untuk sebuah pola dalam sebuah string.
Contoh
Gunakan ekspresi reguler untuk melakukan penghitungan case-insensitive dari jumlah kemunculan "ain" dalam sebuah string:
<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>
Menggunakan preg_replace()
Fungsi preg_replace()
ini akan mengganti semua kecocokan pola dalam string dengan string lain.
Contoh
Gunakan ekspresi reguler case-insensitive untuk menggantikan Microsoft dengan W3Schools dalam sebuah string:
<?php
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo
preg_replace($pattern, "W3Schools", $str); // Outputs "Visit
W3Schools!"
?>
Pengubah Ekspresi Reguler
Pengubah dapat mengubah cara pencarian dilakukan.
Modifier | Description |
---|---|
i | Performs a case-insensitive search |
m | Performs a multiline search (patterns that search for the beginning or end of a string will match the beginning or end of each line) |
u | Enables correct matching of UTF-8 encoded patterns |
Pola Ekspresi Reguler
Tanda kurung digunakan untuk menemukan berbagai karakter:
Expression | Description |
---|---|
[abc] | Find one character from the options between the brackets |
[^abc] | Find any character NOT between the brackets |
[0-9] | Find one character from the range 0 to 9 |
Metakarakter
Metakarakter adalah karakter dengan arti khusus:
Metacharacter | Description |
---|---|
| | Find a match for any one of the patterns separated by | as in: cat|dog|fish |
. | Find just one instance of any character |
^ | Finds a match as the beginning of a string as in: ^Hello |
$ | Finds a match at the end of the string as in: World$ |
\d | Find a digit |
\s | Find a whitespace character |
\b | Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b |
\uxxxx | Find the Unicode character specified by the hexadecimal number xxxx |
Kuantifier
Quantifier mendefinisikan kuantitas:
Quantifier | Description |
---|---|
n+ | Matches any string that contains at least one n |
n* | Matches any string that contains zero or more occurrences of n |
n? | Matches any string that contains zero or one occurrences of n |
n{x} | Matches any string that contains a sequence of X n's |
n{x,y} | Matches any string that contains a sequence of X to Y n's |
n{x,} | Matches any string that contains a sequence of at least X n's |
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: $pattern = '/\?+/';
Pengelompokan
Anda dapat menggunakan tanda kurung ( )
untuk menerapkan quantifier ke seluruh pola. Mereka juga dapat digunakan untuk memilih bagian dari pola yang akan digunakan sebagai kecocokan.
Contoh
Gunakan pengelompokan untuk mencari kata "pisang" dengan mencari ba diikuti oleh dua contoh na :
<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo
preg_match($pattern, $str); // Outputs 1
?>
Referensi RegExp Lengkap
Untuk referensi lengkap, buka Referensi Ekspresi Reguler PHP Lengkap kami .
Referensi berisi deskripsi dan contoh semua fungsi Regular Expression.