phpbar.de logo

Mailinglisten-Archive

[php] RegEx-Problem

[php] RegEx-Problem

Dieter Schmidt flatline at stresstiming.de
Di Jan 19 20:55:18 CET 2010


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