Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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;)

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) :)

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 :-(

???

???
Ääää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.;)

Ja, mit preg_replace() hats gefuntzt :P ...

Du bist mein Held des Tages... DANKE....!

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.