phpbar.de logo

Mailinglisten-Archive

[php] RegEx-Problem

[php] RegEx-Problem

klemens zwiskle at cable.vol.at
Di Jan 19 20:41:09 CET 2010


Hi,

erster verdacht:
unterschiedliche versionen/implementierungen.
- RegexCoach verwendet CL-PPCRE (http://weitz.de/cl-ppcre/) 
  (ist zumindest schonmal in common-lisp..)
- PHP preg* verwendet perl-regex 
  (wird wohl die org. perl-C-library verwendet)

Um die verwirrung noch zu vergössern: es gibt wohl dutzende
implementierungen, mit verscheidene funktonsumfang...
http://www.regular-expressions.info/tools.html

Sogar innerhalb der "standard linux tools" ( grep, find, bash... - die
alle ein bisschen regex können ) feine unterschiede.

Auch wird Perl-6 (alles noch beta) die syntax nochmal ändern...

Babylon,
.klemens

Am Dienstag, den 19.01.2010, 09:14 +0100 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  
> 
> 


php::bar PHP Wiki   -   Listenarchive