oracle对正则表达式零宽断言支持吗?求解

1.oracle数据库有个T表,表中有个字段num,如下所示
| id | num |
| 1 |12354789658222222 |
| 2 |12354789657893333 |
| 3 |12354789657892222 |
| 4 |12354789657833333 |

2.找出尾号规则为(AAAA)num。使用下面的SQL语句

select num from T where regexp_like(num,’(.)(\d)\2{3}$’); 查出的数据如下:
| 1 |12354789658222222 |
| 2 |12354789657893333 |
| 3 |12354789657892222 |
| 4 |12354789657833333 |

3.找出尾号规则为(AAAA),只要(AAAA)不要(AAAAA)

select num from T where regexp_like(num,’(.)(?!\1)(\d)\2{3}$’);
预测结果是:
| 2 |12354789657893333 |
| 3 |12354789657892222 |
但实际结果是:
no row

4.造成的原因是,零宽断言(?!\1)失效,我写的正则表达式已在外面测试过可以使用在这里插入图片描述

5.哪位大神是否可以指导下,是我的“零宽断言”使用错了,还是oracle数据库的正则引擎不支持"零宽断言",还是oracle有自己的“”零宽断言”实现方式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值