【发布时间】:2014-07-09 04:32:08
【问题描述】:
我正在尝试使用 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
【问题讨论】:
-
想通了。这有效: SELECT regexp_replace('DOES JULIE WORK .JULIE. HERE','(\W)julie(\W)', '\1James\2', 1, 0, 'i') regex FROM dual;每天学习一些关于正则表达式的新知识!