DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Pelajari bagaimana menggunakan fungsi preg_match_all di PHP untuk mencocokkan pola regex dalam string dengan panduan langkah demi langkah.
Fungsi preg_match_all
merupakan salah satu fungsi yang sangat berguna dalam PHP untuk melakukan pencocokan ekspresi regular (regex). Fungsi ini digunakan untuk mencari semua kecocokan dari pola tertentu dalam suatu string dan menampungnya dalam array.
Fungsi preg_match_all
akan mencari kecocokan pola yang ditentukan oleh regex di dalam string target. Berbeda dengan preg_match
yang hanya mencari satu kecocokan pertama, preg_match_all
akan mencari semua kecocokan yang mungkin dan mengembalikan jumlah kecocokan yang ditemukan.
Sintaks dari fungsi ini adalah:
preg_match_all(pattern, input, matches, flags, offset);
pattern
: Pola regex yang ingin dicocokkan.input
: String yang akan diuji dengan pola regex.matches
: Array yang akan diisi dengan hasil kecocokan.flags
: Opsi yang mengubah perilaku pencocokan.offset
: Posisi dalam string input
di mana pencarian akan dimulai.Berikut adalah contoh untuk mencari semua digit dalam suatu string:
<?php
$text = "Tahun 2023 akan penuh dengan kesempatan!";
preg_match_all('/\d+/', $text, $matches);
print_r($matches);
?>
Output yang akan dihasilkan adalah sebuah array dari kecocokan angka di dalam string:
Array
(
[0] => Array
(
[0] => 2023
)
)
Kamu juga bisa menambahkan flag untuk mengubah output dari fungsi ini. Misalnya, menggunakan PREG_PATTERN_ORDER
atau PREG_SET_ORDER
.
Flag PREG_PATTERN_ORDER
akan membuat array matches
menyimpan kecocokan berdasarkan pola yang ditemukan:
<?php
$text = "Tahun 2023 dan 2050!";
preg_match_all('/(\d{2})(\d{2})/', $text, $matches, PREG_PATTERN_ORDER);
print_r($matches);
?>
Outputnya adalah:
Array
(
[0] => Array
(
[0] => 2023
[1] => 2050
)
[1] => Array
(
[0] => 20
[1] => 20
)
[2] => Array
(
[0] => 23
[1] => 50
)
)
Sedangkan flag PREG_SET_ORDER
akan mengelompokkan hasil kecocokan sesuai dengan setiap ocurrence:
<?php
$text = "Tahun 2023 dan 2050!";
preg_match_all('/(\d{2})(\d{2})/', $text, $matches, PREG_SET_ORDER);
print_r($matches);
?>
Outputnya adalah:
Array
(
[0] => Array
(
[0] => 2023
[1] => 20
[2] => 23
)
[1] => Array
(
[0] => 2050
[1] => 20
[2] => 50
)
)
Kita juga dapat menentukan offset
sebagai parameter keempat. Ini memungkinkan pencarian kecocokan dimulai dari posisi tertentu dalam string input.
<?php
$text = "Tahun 2023, 2050, dan 2077 akan menjadi tahun yang spesial!";
preg_match_all('/\d+/', $text, $matches, PREG_OFFSET_CAPTURE, 10);
print_r($matches);
?>
Dengan menggunakan PREG_OFFSET_CAPTURE
, kita juga mendapatkan info posisi dari setiap kecocokan dalam string. Contoh output:
Array
(
[0] => Array
(
[0] => Array
(
[0] => 2023
[1] => 6
)
[1] => Array
(
[0] => 2050
[1] => 12
)
[2] => Array
(
[0] => 2077
[1] => 22
)
)
)
Dengan memahami preg_match_all
, kamu bisa mengambil banyak informasi dari sebuah string dengan mudah dan cepat. Kamu cukup menentukan pola yang tepat, dan PHP akan melakukan pencarian kompleks untukmu dengan fungsi ini.