Home » PHP » Fungsi preg_match_all() RegEx PHP

Fungsi preg_match_all() RegEx PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Definisi dan Penggunaan

Fungsi preg_match_all() digunakan untuk mengembalikan jumlah kecocokan pola yang ditemukan dalam string dan mengisi variabel dengan kecocokan yang ditemukan.

Syntax

preg_match_all(pattern, input, matches, flags, offset)

Nilai Parameter

ParameterDescription
patternRequired. Berisi ekspresi reguler yang menunjukkan apa yang harus dicari
inputRequired. String tempat pencarian akan dilakukan
matchesOptional. Variabel yang digunakan dalam parameter ini akan diisi dengan array yang berisi semua kecocokan yang ditemukan
flagsOptional. Seperangkat opsi yang mengubah bagaimana array matches disusun.

Salah satu dari struktur berikut dapat dipilih:

PREG_PATTERN_ORDER – Default. Setiap elemen dalam larik kecocokan adalah kecocokan array dari pengelompokan yang sama dalam ekspresi reguler, dengan indeks 0 terkait dengan kecocokan seluruh ekspresi dan indeks yang tersisa untuk kecocokan subpola.
PREG_SET_ORDER – Setiap elemen dalam kecocokan array yang berisi kecocokan dari semua pengelompokan untuk salah satu kecocokan yang ditemukan dalam string.

Sejumlah opsi berikut dapat diterapkan:

PREG_OFFSET_CAPTURE – Jika opsi ini diaktifkan, setiap kecocokan, alih-alih string, akan menjadi array di mana elemen pertama adalah substring yang berisi kecocokan dan elemen kedua adalah posisi karakter pertama substring di input.
PREG_UNMATCHED_AS_NULL – Jika opsi ini diaktifkan, subpola yang tidak cocok akan dikembalikan sebagai NULL, bukan sebagai string kosong.
offsetOptional. Default-nya 0. Menunjukkan seberapa jauh ke dalam string untuk mulai mencari. Fungsi preg_match() tidak akan menemukan kecocokan yang terjadi sebelum posisi yang diberikan dalam parameter ini

Technical Details

Detail Teknis

Return Value:Mengembalikan jumlah kecocokan yang ditemukan atau false jika terjadi kesalahan
PHP Version:4+
Changelog:PHP 7.2 – Menambahkan tanda PREG_UNMATCHED_AS_NULL

PHP 5.4 – Parameter matches menjadi opsional

PHP 5.3.6 – Fungsi mengembalikan nilai false ketika offset lebih panjang dari panjang input

PHP 5.2.2 – Subpattern bernama dapat menggunakan sintaks (?’name’) dan (?<name> ) selain sintaks sebelumnya (?P<name> )

Contoh 1
Temukan semua kemunculan “ain” dalam string:

<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
if(preg_match_all($pattern, $str, $matches)) {
  print_r($matches);
}
?>
  /* Output : 
Array
(
  [0] => Array
    (
      [0] => ain
      [1] => AIN
      [2] => ain
      [3] => ain
    )
)

Contoh 2
Gunakan PREG_PATTERN_ORDER untuk menyetel struktur kecocokan array . Dalam contoh ini, setiap elemen dalam kecocokan array memiliki semua kecocokan untuk salah satu pengelompokan ekspresi reguler.

<?php
$str = "jkl JKL";
$pattern = "/((j)k)(l)/i";
if(preg_match_all($pattern, $str, $matches, PREG_PATTERN_ORDER)) {
  print_r($matches);
}
?>
  /* Output : 
Array
(
    [0] => Array
        (
            [0] => jkl
            [1] => JKL
        )

    [1] => Array
        (
            [0] => jk
            [1] => JK
        )

    [2] => Array
        (
            [0] => j
            [1] => J
        )

    [3] => Array
        (
            [0] => l
            [1] => L
        )

You may also like