⊗ppPmRgSBh 251 of 447 menu

Änderung des Verhaltens von preg_match_all in PHP

Mit dem vierten Parameter der Funktion preg_match_all kann die Art der Gruppierung der Erfassungsgruppen geändert werden.

Lassen Sie uns sehen, welche Werte dieser Parameter annehmen kann:

Parameter Beschreibung
PREG_PATTERN_ORDER Standardmodus. Die Ergebnisse werden nach Erfassungsgruppen gruppiert - das nullte Element des Arrays enthält die nullten Erfassungsgruppen, das erste Element des Arrays enthält die ersten Erfassungsgruppen und so weiter.
PREG_SET_ORDER Die Ergebnisse werden nach Übereinstimmungen gruppiert - jedes Element des Arrays enthält ein Array mit den gefundenen Erfassungsgruppen.

Sehen wir uns nun die Verwendung dieses Parameters an Beispielen an:

Beispiel

Extrahieren wir alle Zeitstempel aus der Zeichenkette und ihre Komponenten:

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

Ergebnis der Codeausführung:

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

Beispiel

Verwenden wir nun das Flag PREG_SET_ORDER für die Gruppierung nach Übereinstimmungen:

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

Ergebnis der Codeausführung:

[ 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 Aufgaben

Gegeben ist eine Zeichenkette mit Datumsangaben:

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

Finden Sie alle Datumsangaben, indem Sie Jahr, Monat und Tag in separate Erfassungsgruppen trennen. Sorgen Sie dafür, dass in das erste Unterarray das erste Datum mit seinen Erfassungsgruppen gelangt, in das zweite Unterarray - das zweite mit seinen Erfassungsgruppen und so weiter.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen