Dans Oracle REGEXP
, il n'y a pas de \b
modèle pour correspondre aux limites des mots. Une solution couramment utilisée ressemble à ceci.
SELECT id,
REGEXP_REPLACE (msg_info, '(^|\s|\W)(gold)($|\s|\W)', '\1~\2\3', 1,0,'i')
FROM yourtable;
Cela recherche le mot or au début de la chaîne, entouré d'un espace de chaque côté, à la fin de la chaîne ou d'un caractère autre qu'un mot (tel que ? ou -). \1,\2,\3
représentent les caractères appariés entre les 1ère, 2ème et 3ème parenthèses.