在oracle中用整词匹配来包裹想要匹配的词并不可行,
正确的做法应该是这样:
SELECT 1 FROM DUAL WHERE REGEXP_LIKE('1 2 3 14','(^|s|W)3($|s|W)');
并且第一个参数的分割应该用空格,如此以来,我们可以做到整词匹配,这也意味着你匹配“4”是匹配不到的,因为前边的是“14”。
具体原因可以看看stackoverflow上的问答,“”这个表达式 oracle现在并不支持。
参考:
http://stackoverflow.com/questions/7567700/oracle-regexp-like-and-word-boundaries
http://renenyffenegger.blogspot.ch/2014/12/the-missing-b-regular-expression.html