Cara menggunakan preg_match_all in php

Dalam posting ini saya akan memberi Anda tiga metode berbeda untuk melakukan apa yang Anda minta. Saya sebenarnya merekomendasikan untuk menggunakan potongan terakhir, karena paling mudah untuk dipahami dan juga cukup rapi dalam kode.

Bagaimana cara melihat elemen apa dalam array yang cocok dengan ekspresi reguler saya?

Ada fungsi yang didedikasikan untuk tujuan ini saja, preg_grep. Ini akan mengambil ekspresi reguler sebagai parameter pertama, dan array sebagai parameter kedua.

Lihat contoh di bawah ini:

$haystack = array (
  'say hello',
  'hello stackoverflow',
  'hello world',
  'foo bar bas'
);

$matches  = preg_grep ('/^hello (\w+)/i', $haystack);

print_r ($matches);

keluaran

Array
(
    [1] => hello stackoverflow
    [2] => hello world
)

Dokumentasi

  • PHP: preg_grep - Manual

Tapi saya hanya ingin mendapatkan nilai dari kelompok yang ditentukan. Bagaimana?

array_reduce Dengan preg_match Dapat menyelesaikan masalah ini dengan cara yang bersih; lihat cuplikan di bawah ini.

$haystack = array (
  'say hello',
  'hello stackoverflow',
  'hello world',
  'foo bar bas'
);

function _matcher ($m, $str) {
  if (preg_match ('/^hello (\w+)/i', $str, $matches))
    $m[] = $matches[1];

  return $m;
}

// N O T E :
// ------------------------------------------------------------------------------
// you could specify '_matcher' as an anonymous function directly to
// array_reduce though that kind of decreases readability and is therefore
// not recommended, but it is possible.

$matches = array_reduce ($haystack, '_matcher', array ());

print_r ($matches);

keluaran

Array
(
    [0] => stackoverflow
    [1] => world
)

Dokumentasi

  • PHP: array_reduce - Manual
  • PHP: preg_match - Manual

Menggunakan array_reduce Tampaknya membosankan, bukankah ada cara lain?

Ya, dan yang ini sebenarnya lebih bersih meskipun tidak melibatkan fungsi array_* Yang sudah ada sebelumnya atau preg_*.

Bungkus dalam suatu fungsi jika Anda akan menggunakan metode ini lebih dari sekali.

$matches = array ();

foreach ($haystack as $str) 
  if (preg_match ('/^hello (\w+)/i', $str, $m))
    $matches[] = $m[1];

Dokumentasi

  • PHP: preg_match - Manual

PHP

Cara menggunakan preg_match_all in php

  • By
  • 18 September 2021
  • PHP

Regular Expression  atau yang sering dikenal dengan sebutan regex merupakan suatu model yang digunakan untuk mengenali suatu pola pada type data string (di PHP). Regex sendiri tidak mengenal bahasa pemrograman khusus, kita bisa menggunakan teknik regek ini dalam berbagai macam bahasa pemrograman termasuk yang kami coba implementasi menggunakan PHP.

Regular Expression Pada PHP

Dengan menggunakan regex, kita bisa mengetahui pola string yang ada pada sebuah string misalnya email, link, hastag  dan pola-pola kompleks lainnya dengan menggunakan satu ekspresi. Menurut saya, regex ini merupakana mantra paling ajaib hehe.

Jika kamu hanya hanya ingin mendeteksi satu kata yang bersifat statis pada suatu string maka baiknya tidak menggunanalan regex. Akan tetapi jika kebutuhan untuk mendeteksi suatu pola yang bentuknya dinamis maka sangat di rekomendasikan menggunakan teknik regex ini.

Misalnya, terdapat kalimat sebagai berikut :

  • saya belajar #ngoding di website #malasngoding

kalimat di atas ingin kita ubah dimana yang menggunakan hastag (#) akan kita buat bold. misalnya :

  • saya belajar #ngoding di website #malasngoding

Nah, untuk mengubah kata diatas, menurut saya sangat cocok untuk menggunakan regex (regular exspression).

<?php

$string="saya belajar #ngoding di website #malasngoding";

$regex="/#([a-zA-Z0-9]_)+/";

$ganti="<b>$0</b>";

echo"kalimat pertama : ".$string."</br>";

echo "Kalimat diubah : ".preg_replace($regex,$ganti,$string);

?>

Penjelasan dari code diatas adalaha sebagai berikut :

  • $string merupakan variabel yang berisikan kalimat yang awal/inputan sebelum pengubahan
  • $regex adalah variabel yang menyimpan karakter hastag (#), karakter a-z (huruf kecil), karakter A-Z (huruf kapital), karakter angka 0-9
  • $ganti adalah variabel yang berisikan data yang akan diganti, dimana setiap kata yang ada hatag (#) maka akan di ganti menjadi kata yang bertulisan bold.
  • preg_replace merupakan fungsi regex pada php untuk mengantikan kata yang tadinya kita ubah.

Cara menggunakan preg_match_all in php

Regular Expression Pada PHP

Fungsi Regex pada PHP

Di dalam pemrograman PHP, terdapat beberapa fungsi yang berkaitan dengan penggunaan regex. Tujuannya yaitu untuk memudahkan kita dalam mengimplementasikan regex itu sendiri ketika kita menyelesaikan kasus-kasus tertentu. Fungsi regex pada PHP diantaranya :

Fungsi Penjelasan
preg_filter digunakan untuk pencarian kata/string regex dimana pola diganti dengan string pengganti.
preg_grep digunakan untuk mengembalikan array yang hanya berisi elemen dari input yang cocok dengan pola yang diberikan.
preg_last_error_msg digunakan untuk mengembalikan pesan error dari eksekusi regex PCRE terakhir
preg_last_error digunakan untuk mengembalikan kode eror dari eksekusi regex PCRE yang baru
preg_match_all digunakan untuk pencarian semua karakter/kata yang sesuai dengan pola regex.
preg_match digunakan untuk pencarian karakter/kata yang sesuai dengan pola regex
preg_quote digunakan untuk menambahkan garis miring terbalik(\) pada karakter yang memiliki arti khusus dalam regex
preg_replace_callback_array  digunakan untuk mengembalikan array string di mana kecocokan dari satu set regex diganti dengan nilai kembalian dari fungsi callback.
preg_replace_callback digunakan untuk diberi ekspresi dan callback, mengembalikan string di mana semua kecocokan ekspresi diganti dengan substring yang dikembalikan oleh fungsi callback.
preg_replace Pecarian ekspresi regex, lalu menggantikannya dengan data baru
preg_split digunakan untuk memisahkan string dengan regex

Untuk dokumentasi paling lengkap mengenai fungsi regex pada php dapat dilihat langsung di website https://www.php.net/manual/en/ref.pcre.php.

Dari materi Regular Expression Pada PHP diatas dapat kita ambil beberapa kesimpulan sebagai berikut :

  • Regex merupakan metode yang digunakan untuk mengenali suatu pola pada type data string baik itu kata maupun karakter.
  • Regex tidak mengenai jenis bahasa pemrograman, maksudnya semua jenis bahasa pemrograman bisa menerapkan teknik regex ini tidak terkecuali pada bahasa PHP.

Itu lah penjalasan singkat mengenai regular ekspresi (regex) pada PHP. Untuk pembahasan mengenai contoh dan penggunaan setiap dari fungsi regex diatas akan kita bahas di materi selanjutnya dalam seri belajar PHP.

Incoming search terms:

  • belajar php dan mysql Diki Alfarabi Hadi S T