Mailinglisten-Archive |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, möchtest du nicht einfach /^(.*BEGIN_PROGRAMM)$/ vielleicht noch mit s am Ende um deinen Input als eine Zeile zu betrachten. Greedy ist der Ausdruck ja so. Gruß Dieter Am 19.01.2010 09:14, schrieb Mario Batz: > 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 > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAktWDiIACgkQBvnQpWeeG8r8TQCeMpdZFCjjeLRCoWvqFy+sf1xy 7PIAn2FufFE8vlmJN0ti4oKQaSWq2suL =eVXY -----END PGP SIGNATURE-----
php::bar PHP Wiki - Listenarchive