In Oracle REGEXP
, gibt es kein \b
Muster, um Wortgrenzen abzugleichen. Eine häufig verwendete Lösung sieht etwa so aus.
SELECT id,
REGEXP_REPLACE (msg_info, '(^|\s|\W)(gold)($|\s|\W)', '\1~\2\3', 1,0,'i')
FROM yourtable;
Dies sucht nach dem Wort gold am Anfang der Zeichenfolge, umgeben von einem Leerzeichen auf beiden Seiten, am Ende der Zeichenfolge oder nach einem Nicht-Wort-Zeichen (z. B. ? oder -). \1,\2,\3
stellen die übereinstimmenden Zeichen innerhalb der 1., 2. und 3. Klammer dar.