deckt Ich mag würde die Daten aus dem folgenden Beispiel txtregex, die mehrere Linien
START
A: 567 B:345
C: 345 D:485
START
A: 345 B:267
C: 980 D:054
extrahieren Ich verwende diese Regex ohne positive Ergebnisse:
$regex = '~'
. '^(?P<header>.*START:.*)$'
//. '^(.*A: \d{3} B: \d{3}.*)$'
//. '(.*C: \d{3} D: \d{3}.*)$'
. '~m'
;
, die mir die gibt folgende Ergebnis:
Array
(
[0] => Array
(
[0] => START:
[header] => START:
[1] => START:
)
[1] => Array
(
[0] => START:
[header] => START:
[1] => START:
)
)
Aber sobald ich die Zeilen Kommentar-
. '^(.*A: \d{3} B: \d{3}.*)$'
und
. '(.*C: \d{3} D: \d{3}.*)$'
ich bekomme kein Spiel!
Wie kann ich diese Daten extrahieren?
Ich habe versucht, den Start der Linie Anker ^
und Ändern der Zeilenende Anker $
zu \n
ohne Erfolg Löschen
IM ALLGEMEINEN
Wie kann ich die Daten zu extrahieren, wenn ich einen Start haben von Daten Zeile gefolgt von n Datenzeilen, gefolgt von einem Ende der Datenleitung gefolgt von eine oder mehrere leere Zeilen?
Wenn Sie den Multiline-Flag verwenden 'M' es bedeutet, dass'^'den Anfang des Eingangs an und' $ 'bezeichnet das Ende des Eingangs, nicht das Ende einer Zeile. – Sammitch
@Sammitch m Modifikator: mehrzeilig. Bewirkt, dass^und $ mit dem Beginn/Ende jeder Zeile übereinstimmen (nicht nur Anfang/Ende der Zeichenfolge), und zwar gemäß: regex101.com – Cesar