oracle 正则表达式

d{11},[:digit:]{11}

这分别是两种·形式的正则,分别为perl, POSIX标准。但是要在oracle中使用时,perl为10g R2中加入,POSIX从10g就开始支持。当然要使用正则要求的最低版本也需要为10,9i是打死也不行的,当然网上有很多有趣的方法实现形式,大家可以自行百度。关于oracle官方的正则学习文档可以移步这里如果你实在看不下去英文,那么可以查看中文版。oracle文档中关于正则形式的说明,如果你想了解更多关于POSIX正则请移步这里。不要问我为啥蛋疼到研究这点细微的差别,不要以为我在每天一点点凑字数。因为每一个连链接都可能代表了今天让我抓狂的bug出处。

当你在使用Oracle正则时,提2点建议:

1.除非你能确保你的数据库版本足够高,否则请使用POSIX正则。当然这也要默认版本在10g以上。POSIX正则与平时写的perl正则没有技术鸿沟。

2.如果实在没有办法,可以尝试将结果集读入java中做正则匹配。当然这要根据业务场景做判断,此方法适用于数据量不太大,效率要求不高的情况。

发表评论

电子邮件地址不会被公开。 必填项已用*标注