⊗ppPmRgCPN 257 of 447 menu

Total Nomor Grup dalam Regex PHP

Pertimbangkan situasi berikut. Misalkan kita memiliki variabel dengan tahun, yang dapat berubah dari 1990 hingga 2099. Misalkan kita ingin mendapatkan dua digit terakhir tahun ke dalam sebuah grup. Mari tulis regex yang sesuai:

<?php $reg = '#19(9\d)|20(\d\d)#'; ?>

Namun, di sini kita menghadapi satu ketidaknyamanan. Masalahnya adalah bahwa untuk tahun abad terakhir, dua digit akan masuk ke grup pertama, sedangkan untuk tahun abad kedua - ke grup kedua. Mari kita lihat dengan contoh.

Berikut adalah varian pertama:

<?php $str = '1991'; preg_match($reg, $str, $res); var_dump($res); // [1 => '91'] ?>

Dan berikut adalah varian kedua:

<?php $str = '2021'; preg_match($reg, $str, $res); var_dump($res); // [2 => '21'] ?>

Sekarang misalkan kita ingin menulis digit tahun yang ditemukan ke dalam sebuah variabel. Kita akan menghadapi masalah, karena kita tidak tahu persis, dengan kunci mana kita harus mengambil data dari grup:

<?php $year = $res[1]; // butuh kunci 1, atau 2 ?>

Masalahnya dapat diselesaikan dengan kondisi:

<?php if (!empty($res[1])){ $year = $res[1]; } else{ $year = $res[2]; } ?>

Namun, ada solusi yang lebih sederhana. Kita dapat menggunakan perintah khusus (?| ). Semua grup yang berada di dalamnya akan memiliki nomor yang sama.

Mari perbaiki regex kita

<?php $reg = '#(?|19(9\d)|20(\d\d))#'; ?>

Dan sekarang tahun kita pasti akan berada di grup dengan nomor satu:

<?php $year = $res[1]; ?>

Diberikan string dengan tanggal, di mana tahun dapat berubah dari 1990 hingga 2099:

<?php $arr = [ '31-12-2025', '30-11-1995', '29-10-1990', ]; ?>

Untuk setiap tanggal, masukkan hari ke dalam grup pertama, bulan ke dalam grup kedua, dan dua digit terakhir tahun - ke dalam grup ketiga.

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