phpbar.de logo

Mailinglisten-Archive

[php] RegEx-Problem

[php] RegEx-Problem

Mario Batz BatzMario at gmx.net
Di Jan 19 09:14:11 CET 2010


Hallo,
 
folgendes ist gegeben:
- PHP 5.2.0 (preg_match)
- Debian Etch
- Eine Ascii-Datei mit tausenden von Zeilen

Ich möchte mittels Regulären Ausdrücken prüfen, ob die Datei einen gewissen
Standardaufbau hat. Leider hapert es schon beim ersten zu suchenden Eintrag.
In einer Zeile steht: "BEGIN_PROGRAMM" (Ohne Anführungszeichen).
"BEGIN_PROGRAMM" gibt es in der ganzen Datei nur 1x.
Mit folgendem Pattern möchte ich ab Beginn der Datei bis einschließelich
BEGIN_PROGRAMM die Zeichenkette auslesen:
~^([\S\s]+BEGIN_PROGRAMM)~

Teste ich dieses Pattern im "RegExCoach", dann werden genau die richtigen
Zeilen geliefert.

Mit PHP-preg_match, findet das Teil garnichts. Wenn ich aber das + als nicht
gierig setze +? funtzt es plötzlich.

~^([\S\s]+?BEGIN_PROGRAMM)~

Da das Muster allerdings noch viel größer ist, benötige ich später einen
gierigen Ausruck der dann allerdings garnicht mehr funtzt.

Gleiches gilt auch wenn ich folgendes Pattern schreibe:
~^(.+BEGIN_PROGRAMM)~s
Mit ~^(.+?BEGIN_PROGRAMM)~s geht es dann plötzlich.

Steh ich nun aufm Schlauch oder gibt es einen mir noch unbekannten Schalter
in PHP, oder ist es ein Bug?


Mit freundlichen Grüßen
Mario Batz  



php::bar PHP Wiki   -   Listenarchive