phpbar.de logo

Mailinglisten-Archive

[php] RegExp

[php] RegExp

Robert Hennig lists at robert-hennig.de
Sam Feb 14 23:41:00 CET 2004


Hallo Reinhold!

Probiers mal mit folgendem:

preg_match("/$var_anfang(.*)$var_ende/",$daten,$matches);

Die Fehler die ich in deiner RegExp sehe :

- "/^($var_anfang.....
Das ^ sagt preg_match das direkt vor ($var..... der Anfang des zu 
durchsuchenden Textes ist. Was ja nicht stimmt.

- ($var_anfang)*
Damit sagst du aus das alles was in den Klammern steht (Subpattern) 0 
oder beliebig oft vorkommen kann, ok, war vielleicht gewollt aber blöd 
weil du den Inhalt zwischen $var_anfang und $var_ende ja nur dann haben 
willst wenn auch diese vorhanden sind. Danach folgt jedoch sofort ([... 
also nichts zwischen $var_anfang und $var_ende.

- über die () wird nicht nur ein Subpattern definiert sondern auch 
gesteuert was du zurückbekommst. Da du $var_anfang und $var_ende ja 
nicht haben willst brauchst du auch keine Klammern darum.

Ich könnte hier noch tausende Sachen schreiben.....

LG

Robert

Reinhold Riedersberger wrote:

> Hallo ,
> 
> ich möchte mittels "preg_match" die Zeichenkette extrahieren die
> zwischen
> 
> $var_anfang="<anfang>";
> $var_ende="<ende>";
> 
> steht.
> 
> $daten="Dies ist ein Teststring<anfang>Datenmenge 1<ende> zum Testen der Funktion.";
> 
> Mein RegExp sieht wie folgt aus:
> 
> // Extrahiere den Text zwischen $var_anfang und $var_ende
> preg_match("/^($var_anfang)*([^$var_ende]+)/i", $daten, $matches);
> 
> 
> funktioniert aber leider nicht. Da RegExp nun wirklich nicht meine
> Stärke ist, bin ich für jede Hilfestellung dankbar.
> 
> 


php::bar PHP Wiki   -   Listenarchive