200 of 410 menu

Funktionen preg_match_all

Funktionen preg_match_all udfører en global søgning efter et mønster i en streng. Den første parameter er det regulære udtryk, den anden er strengen, der skal søges i, den tredje er arrayet til at gemme resultaterne. Den fjerde valgfrie parameter bestemmer strukturen af de returnerede data, og den femte valgfrie parameter er offset for søgningens start.

Syntaks

preg_match_all(pattern, subject, matches, [flags], [offset]);

Flag

Lad os se, hvilke værdier den fjerde parameter kan tage:

Parameter Beskrivelse
PREG_PATTERN_ORDER Standardtilstand. Resultaterne grupperes efter capture groups - det nulte element i arrayet indeholder de nulte capture groups, det første element i arrayet indeholder de første capture groups og så videre.
PREG_SET_ORDER Resultaterne grupperes efter matches - hvert element i arrayet indeholder et array med de fundne capture groups.
PREG_OFFSET_CAPTURE For hvert match returneres positionen i strengen. Hvert resultat er et array, hvor det nulte element indeholder matchet, og det første - dens offset.
PREG_UNMATCHED_AS_NULL Capture groups der ikke matcher returneres som null i stedet for tomme strenge.

Eksempel

Lad os finde alle cifre i en streng:

<?php $str = 'abc 123 def 456'; preg_match_all('/\d+/', $str, $res); var_dump($res[0]); ?>

Resultat af kodeudførelse:

['123', '456']

Eksempel

Lad os finde alle bogstaver 'a' i en streng:

<?php $str = 'banana'; preg_match_all('/a/', $str, $res); var_dump($res[0]); ?>

Resultat af kodeudførelse:

['a', 'a', 'a']

Eksempel

Lad os udtrække alle tidsstempler fra en streng og deres komponenter:

<?php $time = '12:01:02 13:03:04 14:05:06'; preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res); var_dump($res); ?>

Resultat af kodeudførelse:

[ 0 => ['12:01:02', '13:03:04', '14:05:06'], 1 => ['12', '13', '14'], 2 => ['01', '03', '05'], 3 => ['02', '04', '06'] ]

Eksempel

Og lad os nu bruge flaget PREG_SET_ORDER for at gruppere efter matches:

<?php $time = '12:01:02 13:03:04 14:05:06'; preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res, PREG_SET_ORDER); var_dump($res); ?>

Resultat af kodeudførelse:

[ 0 => '12:01:02', 1 => '12', 2 => '01', 3 => '02' ], [ 0 => '13:03:04', 1 => '13', 2 => '03', 3 => '04' ], [ 0 => '14:05:06', 1 => '14', 2 => '05', 3 => '06' ]

Se også

  • funktionen preg_match,
    som søger efter det første match med et regulært udtryk
  • funktionen preg_replace,
    som udfører søgning og erstatning med et regulært udtryk
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