Oracle 正则 整词匹配 不行
Posted 剑握在手
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 正则 整词匹配 不行相关的知识,希望对你有一定的参考价值。
在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
以上是关于Oracle 正则 整词匹配 不行的主要内容,如果未能解决你的问题,请参考以下文章
oracle正则表达式问题。有个字符串abca4gf,我想匹配a开头,f结尾的字符串, 我想要的结
在oracle中,想要筛选出含有阿拉伯数字,空格和.的字段,使用%通配符好像不行,求助高手