⊗ppPmRgNP 255 of 447 menu

Kantong Bernama dalam Regex PHP

Misalkan dengan menggunakan preg_match kita ingin memecah tanggal menjadi hari, bulan, dan tahun. Mari gunakan kantong untuk ini:

<?php $str = '2025-10-29'; $reg = '#(\d{4})-(\d{2})-(\d{2})#'; preg_match($reg, $str, $match); var_dump($match); // akan mengeluarkan ['2025-10-29', '2025', '10', '29'] ?>

Seperti yang Anda lihat, sebagai hasilnya kita mendapatkan array, di mana pada elemen nol akan ada seluruh tanggal, pada elemen pertama - tahun, pada elemen kedua - bulan, pada elemen ketiga - hari.

Terkadang, akan lebih nyaman untuk mendapatkan isi kantong dalam bentuk array asosiatif. Yaitu dalam kasus kita, akan lebih baik untuk mendapatkan array seperti ini:

[ 'year' => '2025', 'month' => '10', 'day' => '29' ]

Untuk ini, dalam regex ada sintaksis khusus. Ini dia: (?<name>pattern), di mana pattern adalah regex, dan name adalah nama kantong.

Mari kita tulis ulang regex tanggal kita menggunakan kantong bernama:

<?php $str = '2025-10-29'; $reg = '#(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})#'; preg_match($reg, $str, $match); var_dump($match); ?>

Hasilnya, kita akan mendapatkan array asosiatif, di mana kuncinya adalah nama-nama kantong, dan nilainya adalah apa yang masuk ke dalamnya:

[ 'year' => '2025', 'month' => '10', 'day' => '29', ]

Sebenarnya, dalam array hasil, nilai-nilai kantong akan dapat diakses baik berdasarkan nama maupun berdasarkan nomor urut. Artinya, misalnya, tahun akan dapat diakses dengan kunci 'year' dan dengan nomor 1, bulan - dengan kunci 'month' dan dengan nomor 2, dan seterusnya:

[ 'year' => '2025', 'month' => '10', 'day' => '29', 1 => '2025', 2 => '10', 3 => '29' ]

Kantong bernama yang dijelaskan memiliki beberapa sintaksis alternatif lagi: (?P<name>pattern) dan (?'name'pattern).

Diberikan string dengan waktu:

<?php $str = '12:59:59'; ?>

Letakkan jam, menit, dan detik ke dalam kantong bernama yang terpisah.

Tulis sebuah fungsi yang dalam array hasil akan menghapus semua kantong bernomor, menyisakan hanya kantong bernama.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak