orcale中正则的用法

 今天一个需求,突然让我想到了,在orcale中能不能用正则匹配数据,网上找了找,有!就做了一下笔记 方便以后查阅,和大家共同鉴赏生气可是又发现10g以下的版本不支持正则的函数,这样一下又让侬的心情下落一丈。不过还好在网上又找到了相关的资料:

select trim(translate('ASD45XXGG31KK/22','1234567890ASD45XXGG31KK/','1234567890')) from dual;

其它就是利用translate函数的特性进行替换,类似于replace功能。如果想做的复杂一点就偶尔用用translate函数进行嵌套,会得不一样的效果。

以下只有10g支持:

select regexp_replace('ASD45XXGG31KK/22','[^0-9]','') from dual;
select regexp_substr(regexp_replace('ASD45XXGG31KK/22','[^0-9]+','-'),'([0-9]+-?)+') from dual


找出合法的日期

SQL> select * from regexp_test
  2  where regexp_like(datecol,'^([0-9]{4})-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1])) (([0-1][0-9])|(2[0-3]))[0-5][0-9])[0-5][0-9])$');


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值