Oracle 正则 整词匹配 \b 不行

在oracle中用整词匹配\b来包裹想要匹配的词并不可行,

正确的做法应该是这样:

SELECT 1 FROM DUAL
WHERE REGEXP_LIKE('1 2 3 14','(^|\s|\W)3($|\s|\W)');

 

并且第一个参数的分割应该用空格,如此以来,我们可以做到整词匹配,这也意味着你匹配“4”是匹配不到的,因为前边的是“14”。

 

具体原因可以看看stackoverflow上的问答,“\b”这个表达式 oracle现在并不支持。

 

 
参考:
http://stackoverflow.com/questions/7567700/oracle-regexp-like-and-word-boundaries
http://renenyffenegger.blogspot.ch/2014/12/the-missing-b-regular-expression.html
posted @ 2017-05-02 17:33  剑握在手  阅读(643)  评论(0编辑  收藏  举报
返回顶部↑