oneside Geschrieben 30. Januar 2006 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
Carnie Geschrieben 31. Januar 2006 Geschrieben 31. Januar 2006 mmh ich würde sagen "<!--*-->" Das Sternchen als Platzhalter für beliebige Zeichen.
Markus.K Geschrieben 31. Januar 2006 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;)
Carnie Geschrieben 31. Januar 2006 Geschrieben 31. Januar 2006 ups stimmt...bin ich wohl doch ein wenig eingerostet was reguläre Ausdrücke angeht
Markus.K Geschrieben 31. Januar 2006 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)
oneside Geschrieben 31. Januar 2006 Autor 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 :-( ???
Markus.K Geschrieben 31. Januar 2006 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.
oneside Geschrieben 31. Januar 2006 Autor Geschrieben 31. Januar 2006 Ja, mit preg_replace() hats gefuntzt ... Du bist mein Held des Tages... DANKE....!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden