Regex #
Pengertian #
Regex (Regular Expressions) adalah pola yang digunakan untuk mencocokkan teks. PHP menyediakan dukungan untuk regex melalui fungsi-fungsi yang berbasiskan pustaka PCRE (Perl Compatible Regular Expressions).
Berbagai Fungsi Regex #
- preg_match(): Mencari kecocokan dari sebuah pola di dalam string.
- preg_match_all(): Mencari semua kecocokan dari sebuah pola di dalam string.
- preg_replace(): Mengganti kecocokan dari sebuah pola dengan string lain.
- preg_split(): Memisahkan string berdasarkan pola.
- preg_grep(): Mengembalikan array elemen yang cocok dengan pola.
Sintaks Dasar #
- /^regex$/: Pola regex umumnya dimulai dan diakhiri dengan garis miring (delimiters).
- .: Mencocokkan sembarang karakter kecuali newline.
- ^: Mencocokkan awal string.
- $: Mencocokkan akhir string.
- []: Mencocokkan satu dari sekumpulan karakter.
- (): Menangkap grup.
- |: Atau (OR).
- ****: Escape karakter.
Modifiers #
Modifiers mengubah cara kerja regex. Berikut adalah beberapa modifiers umum:
Modifier | Deskripsi |
---|---|
i |
Case-insensitive matching. |
m |
Multiline matching. |
s |
Dot matches newline characters. |
x |
Allow comments and whitespace in pattern. |
u |
Pattern is treated as UTF-8. |
Implementasi Regex #
preg_match() #
Contoh Penggunaan preg_match():
<?php
$pattern = "/^hello/i";
$text = "Hello, world!";
if (preg_match($pattern, $text)) {
echo "Kecocokan ditemukan!"; // Output: Kecocokan ditemukan!
} else {
echo "Tidak ada kecocokan.";
}
?>
preg_match_all() #
Contoh Penggunaan preg_match_all():
<?php
$pattern = "/\d+/"; // Mencocokkan semua digit
$text = "Ada 12 apel, 24 pisang, dan 36 jeruk.";
preg_match_all($pattern, $text, $matches);
print_r($matches);
// Output: Array ( [0] => Array ( [0] => 12 [1] => 24 [2] => 36 ) )
?>
preg_replace() #
Contoh Penggunaan preg_replace():
<?php
$pattern = "/apel/";
$replacement = "mangga";
$text = "Saya suka apel.";
$result = preg_replace($pattern, $replacement, $text);
echo $result; // Output: Saya suka mangga.
?>
preg_split() #
Contoh Penggunaan preg_split():
<?php
$pattern = "/[\s,]+/"; // Memisahkan berdasarkan spasi atau koma
$text = "Satu, dua tiga empat, lima";
$parts = preg_split($pattern, $text);
print_r($parts);
// Output: Array ( [0] => Satu [1] => dua [2] => tiga [3] => empat [4] => lima )
?>
preg_grep() #
Contoh Penggunaan preg_grep():
<?php
$pattern = "/^A/";
$array = array("Apple", "Banana", "Avocado", "Cherry");
$result = preg_grep($pattern, $array);
print_r($result);
// Output: Array ( [0] => Apple [2] => Avocado )
?>
Contoh Penggunaan #
Validasi Alamat Email #
Contoh Regex untuk Validasi Email:
<?php
$pattern = "/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/";
$email = "[email protected]";
if (preg_match($pattern, $email)) {
echo "Alamat email valid."; // Output: Alamat email valid.
} else {
echo "Alamat email tidak valid.";
}
?>
Ekstraksi URL dari Teks #
Contoh Regex untuk Ekstraksi URL:
<?php
$pattern = "/https?:\/\/[^\s]+/";
$text = "Kunjungi https://www.example.com atau http://example.org untuk informasi lebih lanjut.";
preg_match_all($pattern, $text, $matches);
print_r($matches);
// Output: Array ( [0] => Array ( [0] => https://www.example.com [1] => http://example.org ) )
?>
Mengganti Semua Angka dengan Teks “NUMBER” #
Contoh Regex untuk Mengganti Angka:
<?php
$pattern = "/\d+/";
$replacement = "NUMBER";
$text = "Nomor telepon saya adalah 123-456-7890.";
$result = preg_replace($pattern, $replacement, $text);
echo $result; // Output: Nomor telepon saya adalah NUMBER-NUMBER-NUMBER.
?>
Tabel Identifier Regex #
Identifier | Deskripsi |
---|---|
^ |
Awal string |
$ |
Akhir string |
. |
Sembarang karakter kecuali newline |
[] |
Sekumpulan karakter |
[^] |
Sekumpulan karakter yang tidak cocok |
\d |
Digit (0-9) |
\D |
Non-digit |
\w |
Karakter alfanumerik (a-z, A-Z, 0-9, _) |
\W |
Non-alfanumerik |
\s |
Whitespace (spasi, tab, newline) |
\S |
Non-whitespace |
* |
0 atau lebih kecocokan |
+ |
1 atau lebih kecocokan |
? |
0 atau 1 kecocokan |
{n} |
Tepat n kecocokan |
{n,} |
Setidaknya n kecocokan |
{n,m} |
Antara n dan m kecocokan |
() |
Menangkap grup |
| | Operator OR (atau) |
\ |
Escape karakter |
Kesimpulan #
Regex di PHP adalah alat yang kuat untuk pencarian dan manipulasi teks. Dengan fungsi-fungsi seperti preg_match()
, preg_match_all()
, preg_replace()
, preg_split()
, dan preg_grep()
, Anda dapat melakukan berbagai operasi kompleks pada string. Memahami sintaks regex dan modifiers akan membantu Anda memanfaatkan sepenuhnya kekuatan regex dalam PHP.