oneside Geschrieben 30. Januar 2006 Teilen Geschrieben 30. Januar 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Carnie Geschrieben 31. Januar 2006 Teilen Geschrieben 31. Januar 2006 mmh ich würde sagen "<!--*-->" Das Sternchen als Platzhalter für beliebige Zeichen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Markus.K Geschrieben 31. Januar 2006 Teilen Geschrieben 31. Januar 2006 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;) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Carnie Geschrieben 31. Januar 2006 Teilen Geschrieben 31. Januar 2006 ups stimmt...bin ich wohl doch ein wenig eingerostet was reguläre Ausdrücke angeht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Markus.K Geschrieben 31. Januar 2006 Teilen Geschrieben 31. Januar 2006 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) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oneside Geschrieben 31. Januar 2006 Autor Teilen Geschrieben 31. Januar 2006 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 :-( ??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Markus.K Geschrieben 31. Januar 2006 Teilen Geschrieben 31. Januar 2006 ???Ääää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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oneside Geschrieben 31. Januar 2006 Autor Teilen Geschrieben 31. Januar 2006 Ja, mit preg_replace() hats gefuntzt ... Du bist mein Held des Tages... DANKE....! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.