⊗ppPmRgNP 255 of 447 menu

Navngivne lommer i PHP regulære udtryk

Lad os med preg_match ønske at opdele en dato i dag, måned og år. Vi bruger lommer til dette:

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

Som du kan se, får vi et array som resultat, hvor det nulte element vil være hele datoen, det første - året, det andet - måneden, det tredje - dagen.

Nogle gange ville det dog være praktisk at få indholdet af lommerne som et associativt array. Det vil sige, i vores tilfælde ville det være godt at få et array som dette:

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

Til dette findes der en speciel syntaks i regulære udtryk. Her er den: (?<name>pattern), hvor pattern er det regulære udtryk, og name er navnet på lommen.

Lad os omskrive vores regulære udtryk for datoen med navngivne lommer:

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

Som resultat får vi et associativt array, hvor nøglerne vil være lommernes navne, og værdierne - det, der endte i dem:

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

I virkeligheden vil værdierne af lommerne i resultatarrayet være tilgængelige både efter navn og efter rækkenummer. Det vil sige, for eksempel vil året være tilgængeligt med nøglen 'year' og med nummeret 1, måneden - med nøglen 'month' og med nummeret 2 og så videre:

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

De beskrevne navngivne lommer har yderligere et par alternative syntakser: (?P<name>pattern) og (?'name'pattern).

Der gives en streng med et klokkeslæt:

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

Placer timer, minutter og sekunder i separate navngivne lommer.

Skriv en funktion, der i resultatarrayet fjerner alle de nummererede lommer og kun efterlader de navngivne.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis