我正在尝试使用Oracle的regexp_replace替换单词,我需要的东西就像零长度\b
字边界一样。出于某种原因,Oracle选择不实现这一点。如果我使用\W
我可以找到没有问题的单词,但是当我去替换它们时,我也会替换\W
找到的单词边界。例如:
SELECT regexp_replace('DOES JULIE WORK .JULIE. HERE','\Wjulie\W', 'James', 1, 0, 'i') regex FROM dual;
返回此字符串:
DOESJamesWORK James HERE
我希望它返回:
DOES James WORK .James. HERE
答案 0 :(得分:0)
如果JULIE出现在字符串的开头或结尾,则评论中的正则表达式匹配模式不起作用。尝试这样做,包括行的开头和结尾:
'(^|\W)julie(\W|$)'
说明:
^ =开始行的锚
| = OR
$ =行尾的锚点