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