⊗ppPmRgNP 255 of 447 menu

Nosauktie kapteņi PHP regulārajās izteiksmēs

Pieņemsim, ka ar preg_match palīdzību mēs vēlamies sadalīt datumu dienā, mēnesī un gadā. Izmantosim šim nolūkam kapteņus:

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

Kā jūs redzat, rezultātā mēs iegūstam masīvu, kurā nulles elementā būs viss datums, pirmajā - gads, otrajā - mēnesis, trešajā - diena.

Dažreiz tomēr būtu ērti iegūt kapteņu saturu asociatīvā masīva veidā. Tas ir, mūsu gadījumā būtu labi iegūt šeitādu masīvu:

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

Šim nolūkam regulārajās izteiksmēs pastāv speciāls sintakse. Lūk, tā: (?<name>pattern), kur pattern - ir regulārā izteiksme, bet name - ir kapteņa nosaukums.

Pārrakstīsim mūsu datuma regulāro izteiksmi izmantojot nosauktos kapteņus:

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

Rezultātā mums izveidosies asociatīvs masīvs, kurā atslēgas būs kapteņu nosaukumi, bet vērtības - tas, kas tajos iekrita:

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

Patiesībā rezultātu masīvā kapteņu vērtības būs pieejamas gan pēc nosaukuma, gan arī pēc kārtas numura. Tas ir, piemēram, gads būs pieejams pēc atslēgas 'year' un pēc numura 1, mēnesis - pēc atslēgas 'month' un pēc numura 2 un tā tālāk:

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

Aprakstītajiem nosauktajiem kapteņiem ir vēl dažas alternatīvas sintakses: (?P<name>pattern) un (?'name'pattern).

Dota virkne ar laiku:

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

Ievietojiet stundas, minūtes un sekundes atsevišķos nosauktos kapteņos.

Uzrakstiet funkciju, kas masīvā ar rezultātu izdzēsīs visus numurētos kapteņus, atstājot tikai nosauktos.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt