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

转载于:https://www.cnblogs.com/flying607/p/6797256.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值