Highlight-Funkion
Verfasst: 14.11.2005 23:03
Hallo zusammen,
Hat jemand eine schöne RegEx-Funktion, mit der ich bestimmte Textpassagen hervorheben kann, ohne dass HTML-Tags geändert werden?
Eigentlich handelt es sich um eine klassische Aufgabe: in einem Text sollen bestimmte Textpassagen hervorgehoben werden. Dafür habe ich auch einige Ansätze gefunden, die mich zu folgendem Code gebracht haben:Das Problem dabei: auch das, was in einem HTML-Tag steht (also z.B. href) wird geändert.
Das habe ich nun etwas weiterentwickelt, und bin bei folgendem Code gelandet:Nun ersetzt PHP zwar das, was es soll - aber nur einmal. Kommen mehrere hervorzuhebende Passagen vor, so wird nur ein Wort ersetzt.
Hat jemand da eine schöne Expression, die das Problem löst?
Viele Grüße und Danke,
Philipp
Hat jemand eine schöne RegEx-Funktion, mit der ich bestimmte Textpassagen hervorheben kann, ohne dass HTML-Tags geändert werden?
Eigentlich handelt es sich um eine klassische Aufgabe: in einem Text sollen bestimmte Textpassagen hervorgehoben werden. Dafür habe ich auch einige Ansätze gefunden, die mich zu folgendem Code gebracht haben:
Code: Alles auswählen
preg_replace("#\b(wort1|wort2)\b#i", '<span class="highlight">$1</span>', $text)
Das habe ich nun etwas weiterentwickelt, und bin bei folgendem Code gelandet:
Code: Alles auswählen
preg_replace("#(>[^<]*\b|^[^<>]*\b)(wort1|wort2)(\b[^>]*<|\b[^<>]*\$)#i", '$1<span class="highlight">$2</span>$3', $text)
Hat jemand da eine schöne Expression, die das Problem löst?
Viele Grüße und Danke,
Philipp