200 of 410 menu

A preg_match_all függvény

A preg_match_all függvény globális keresést végez a minta szerint egy sztringben. Az első paraméter a reguláris kifejezés, a második a keresendő sztring, a harmadik az eredmények tárolására szolgáló tömb. A negyedik opcionális paraméter a visszaadott struktúra típusát határozza meg, az ötödik opcionális paraméter pedig a keresés kezdetének eltolását.

Szintaxis

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

Flag-ek

Nézzük meg, milyen értékeket vehet fel a negyedik paraméter:

Paraméter Leírás
PREG_PATTERN_ORDER Alapértelmezett mód. Az eredmények csoportosítása zsebek szerint történik - a tömb nulladik eleme a nulladik zsebeket tartalmazza, az első elem az első zsebeket tartalmazza és így tovább.
PREG_SET_ORDER Az eredmények egyezések szerint vannak csoportosítva - a tömb minden eleme egy, a megtalált zsebeket tartalmazó tömböt tartalmaz.
PREG_OFFSET_CAPTURE Minden egyezéshez visszaadja a pozíciót a sztringben. Minden eredmény egy olyan tömb, ahol a nulladik elem az egyezést, az első pedig annak eltolását tartalmazza.
PREG_UNMATCHED_AS_NULL A nem egyező zsebek null értékként kerülnek visszaadásra az üres sztringek helyett.

Példa

Keressük meg az összes számjegyet a sztringben:

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

A kód végrehajtásának eredménye:

['123', '456']

Példa

Keressük meg az összes 'a' betűt a sztringben:

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

A kód végrehajtásának eredménye:

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

Példa

Bontsuk ki az összes időbélyeget a sztringből és azok összetevőit:

<?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); ?>

A kód végrehajtásának eredménye:

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

Példa

Most használjuk a PREG_SET_ORDER flag-et az egyezések szerinti csoportosításhoz:

<?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); ?>

A kód végrehajtásának eredménye:

[ 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' ]

Lásd még

  • a preg_match függvényt,
    amely a reguláris kifejezés első egyezését keresi
  • a preg_replace függvényt,
    amely keresést és cserét végez reguláris kifejezés alapján
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás