Veröffentlicht 30. Januar 200619 j Hallo, ich muss aus einem HTML-Text (in dem viele HTML-Kommentare sind) per php alle HTML-Kommentare (inkl. Tags) löschen. BLA BLA BLA <!--Kommentar--> Weiterer Text... Wie lautet der Reguläre Ausdruck für ereg_replace? Anfang und Ende sind ja beim Tag immer gleich, nur der Zwischenraum ist variabel... Thx Oneside
31. Januar 200619 j mmh ich würde sagen "<!--*-->" Das Sternchen als Platzhalter für beliebige Zeichen.
31. Januar 200619 j Als "Platzhalter" muss hier die Folge (.+?) dienen: Der . als "beliebiges Zeichen" + für ein oder mehr Vorkommen dieses Zeichens (alternativ * wenn da auch gar kein Zeichen kommt) und ? für minimales Matching. Letzteres ist erforderlich, da ja mehrere Kommentarfolgen vorkommen, und nur genau diese und nicht der richtige Text zwischen zwei Kommentaren erschlagen wird. Vollständig: /<!--(.+?)-->/ @Carnie: Dein Ausdruck würde allenfalls Kommentare aus beliebig vielen Minuszeichen erschlagen;)
31. Januar 200619 j ups stimmt...bin ich wohl doch ein wenig eingerostet was reguläre Ausdrücke angeht
31. Januar 200619 j Für Einsteiger: http://www.linuxfibel.de/regex.htm und dann mal Google anschmeißen, was es sonst so gibt. Wer alles rausholen will, und sich auch auf abstrakterer theoretischer Ebene mit der Materie beschäftigen will: ISBN 3897213494 (leider nicht ganz billig für ein rel. dünnes Büchlein)
31. Januar 200619 j Also wenn ich folgendes ausführe: $var = ereg_replace("/<!--(.+?)-->/","",$var); dann ist der gesamte Text aus $var weg und nicht nur die Kommentare: Also wenn $var folgenden Inhalt hat: "Dies ist ein Text der viel aussagen kann <!--Kommentar zu diesem Text-->" Dann bleibt nach dem preg_replace nix mehr übrig :-( ???
31. Januar 200619 j ???Äääähmjaaaa... wird vermutlich daran liegen, dass ich nur mit perl-kompatiblen ("Standard"!) RegExen agiere. ereg_replace scheint da nach einem oberflächlichen Blick ins Manual etwas anders zu ticken... Einen Versuch hab ich aber noch... ereg_replace Tipp: Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace(). Ich hoffe mal, beim Aufruf bist du nicht auf ereg_replace eingeschränkt.
31. Januar 200619 j Ja, mit preg_replace() hats gefuntzt ... Du bist mein Held des Tages... DANKE....!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.