⊗ppPmRgSBh 251 of 447 menu

Gedrag van preg_match_all wijzigen in PHP

Met behulp van de vierde parameter van de functie preg_match_all kan men de manier van groeperen van captures aanpassen.

Laten we eens kijken welke waarden deze parameter kan aannemen:

Parameter Beschrijving
PREG_PATTERN_ORDER Standaardmodus. Resultaten worden gegroepeerd per capture - het nulde element van de array bevat de nulde captures, het eerste element van de array bevat de eerste captures en zo verder.
PREG_SET_ORDER Resultaten worden gegroepeerd per match - elk element van de array bevat een array met de gevonden captures.

Laten we nu het gebruik van deze parameter bekijken aan de hand van voorbeelden:

Voorbeeld

Laten we alle tijdstempels uit de string halen en hun componenten:

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

Resultaat van de code-uitvoering:

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

Voorbeeld

Laten we nu de flag PREG_SET_ORDER gebruiken voor groepering per match:

<?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); print_r($res); ?>

Resultaat van de code-uitvoering:

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

Praktische opdrachten

Gegeven een string met datums:

<?php $str = '2023-10-29 2024-11-30 2025-12-31'; ?>

Vind alle datums, waarbij je het jaar, de maand en de dag in aparte captures scheidt. Zorg ervoor dat in de eerste subarray de eerste datum met zijn captures komt, in de tweede subarray - de tweede met zijn captures, enzovoort.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren