PHP Preg_match_all Zeilenumbruch

scue

Cadet 4th Year
Registriert
Aug. 2008
Beiträge
68
Hallo,

ich habe eine Frage zu einer Preg_match_all. In einer Textdatei steht folgendes:

Ich möchte jetzt die beiden Zahlen herausfiltern. Mein derzeitiges Teststatement sieht derzeit folgendermaßen aus:

PHP:
preg_match_all("/(LetzteTaxedesTages|Taxe)(\r|\n\s)([0-9])/", $text, $zahlen);

leider funktioniert es nicht. Was funktioniert ist:
PHP:
preg_match_all("/(LetzteTaxedesTages|Taxe)(\r|\n\s)/", $text, $zahlen);

aber dann habe ich keine zahlen.

Kann mir jemand helfen bei dem Umbruch?

Viele Grüße
Scue
 
Zuletzt bearbeitet: (Ergänzung)
wenn es wirklich um die Zahlen in solch einer Textdatei handelt, solltest du die zahlen einfach Zeilenweise auslesen!
 
Java-RegEx: (LetzteTaxedesTages|Taxe)\s([0-9]+[,][0-9]{2})\s([0-9]+[,][0-9]{2})
\s ist in Java ein Whitespace (wie bei PHP) und würde auch CR, LF, sowie CR+LF matchen plus weitere wie SPACE, TAB, etc .
Um den Wert der Zeile 2 abzurufen wird nur der geklammerte Teil abgerufen was nacheinem einmaligen matcher.find() in Java möglich wäre (matcher.group(2)) für die 3. Zeile dann analog (matcher.group(3)):
PHP sollte sich hier nicht so sehr unterscheiden.

Bei den Zahlen habe ich angenommen das mindestens eine Vorkommastelle vorhanden ist und genau zwei Nachkommastellen. Das ganze habe ich dann dupliziert, damit die Zahlen beider Zeilen gefunden werden.
Wenn nur die erste Zeile nach den Strings "LetzteTaxedesTages" oder "Taxe" gewünscht ist dann ist der gedoppelte Teil oben abzuschneiden.

Nachtrag: Da bei PHP die wohl \r \n abgefragt werden können, war Dein Ansatz schon nicht so falsch. Es gibt dabei mindestens 4-Varianten, wovon aber eigentlich nur 3 üblich sind. Diese üblichen Varianten sind in folgendem PHP-RegEx abgedeckt: (\r|\r\n|\n)
 
Zuletzt bearbeitet: (Nachtrag und Typos)
Zurück
Oben