Regexp
Matthias
- php
Hallo,
folgendes Problem liegt mir auf den Nerven:
Ich möchte aus einer HTML-Datei den gesamten Inhalt zwischen zwei Tags rauslöschen. Das blöde ist, das der Text dazwischen verschieden lang sein kann und das der Tag mehrfach auftreten kann.
Also quasi: " <ichnervdich> edkfefioefe . / \ </ichnervdich> ..... <ichnervdich> edkfefioefe . / \ </ichnervdich> "
Dieser Tag soll durch einen einfachen String ersetzt werden, sagen wir "jetztnichtmehr".
Um dieses Problem zu meistern habe ich mir gedacht, benutze ich
folgenden Ausdruck:
$ergebnis = preg_match("/<ichnervdich>.*</ichnervdich>/","jetztnichtmehr",$text);
Das dumme ist, wie ich auch rumexperimentiere ich kriege immer nur entweder alles oder nix in die Anzeige, aber nie den Text ohne Tags.
Im Archiv und in der Doku steht immer nur drin was man bei einzelnen Zeichen macht die man ersetzten will,aber wie geht man denn bei Zeichenketten vor, die gefunden werden sollen? Gibts denn da keine Klammerung z.B. [] oder () zwischen denen eine Zeihenfolge einfach angegeben werden kann und die dann gesucht wird?
Grüße, Matthias
Huhu Matthias
$ergebnis = preg_match("/<ichnervdich>.*</ichnervdich>/","jetztnichtmehr",$text);
Das dumme ist, wie ich auch rumexperimentiere ich kriege immer nur entweder alles oder nix in die Anzeige, aber nie den Text ohne Tags.
Preg_match_all() und der Modifier U für ungreedy sollten Dir weiterhelfen.
so short ...
lulu
Ups, hab mich verschrieben:
nicht preg_match sondern preg_replace
$ergebnis = preg_match("/<ichnervdich>.*</ichnervdich>/s","jetztnichtmehr",$text);
tipp ich mal..
greetz RFZ