Thread Regex-Frage: \b und \B bei Sonderzeichen (2 answers)
Opened by svwcharly at 2007-06-23 01:15

svwcharly
 2007-06-23 01:15
#77755 #77755
User since
2007-06-23
1 Artikel
BenutzerIn
[default_avatar]
Hallo, ich habe ein Regex-Problem.
In einem HTML-Text sollen bestimmte Zeichenketten kursiv oder fett hervorgehoben werden, aber nur, wenn die Zeichenkette als ganzes Wort auftaucht oder am Anfang oder am Ende steht.

Als Beispiel:
$text = " ärztliche fachärztlich ärztlich";
$such = "ärztlich";
$text =~ s/\B($such)\b/>>$1<</ig;
$text =~ s/\b($such)\B/>>$1<</ig;
$text =~ s/\b($such)\b/>>$1<</ig;

Das Ergebnis ist:
&auml;rztliche fach>>&auml;rztlich<< >>&auml;rztlich<<

Also die Zeichenkette am Anfang des 1. Wortes (&auml;rztliche) wird nicht hervorgehoben, trotz \b ... \B
Kann mir das einer erklären? Und wie kann man das Problem lösen? Ein einfaches
$text =~ s/($such)/>>$1<</ig;
hilft nicht, weil dann auch in der Mitte von Wörtern hervorgehoben wird, also Suchwort "usa" wird dann auch gefunden in "zusammen" usw.

Danke für Eure Tipps!
SVW-Charly

View full thread Regex-Frage: \b und \B bei Sonderzeichen