I Oracle REGEXP
, det finns ingen \b
mönster för att matcha ordgränser. En vanlig lösning ser ut ungefär så här.
SELECT id,
REGEXP_REPLACE (msg_info, '(^|\s|\W)(gold)($|\s|\W)', '\1~\2\3', 1,0,'i')
FROM yourtable;
Detta söker efter ordet guld i början av strängen, omgivet av ett mellanslag på vardera sidan, slutet av strängen eller ett icke-ordstecken (som ? eller -). \1,\2,\3
representerar tecknen som matchas inom 1:a, 2:a och 3:e parentesen.