En Oracle REGEXP
, no hay \b
patrón para que coincida con los límites de las palabras. Una solución de uso común se parece a esto.
SELECT id,
REGEXP_REPLACE (msg_info, '(^|\s|\W)(gold)($|\s|\W)', '\1~\2\3', 1,0,'i')
FROM yourtable;
Esto busca la palabra oro al comienzo de la cadena, rodeada por un espacio a cada lado, al final de la cadena o un carácter que no sea una palabra (como ? o -). \1,\2,\3
representan los caracteres coincidentes dentro del primer, segundo y tercer paréntesis.