首页 > 数据库技术 > 详细

oracle11Gregexp_like用法示例

时间:2019-05-31 16:52:57      阅读:101      评论:0      收藏:0      [点我收藏+]

 

--字符串从头到尾都是数字,即整个字符串是数字 regexp_like(字符串,‘^[0-9]+$‘) 返回boolean,常用于where条件
select * from (
select ‘a123‘ s1 from dual
union all select ‘123‘ s1 from dual
union all select null str from dual
union all select ‘1‘ s1 from dual
) where regexp_like(s1,‘^[0-9]+$‘)
;
123
1

--返回日期格式如2018-05-16
select * from (
select ‘0123-45-15-8‘ s1 from dual
union all select ‘0981-789abcd‘ s1 from dual
union all select ‘2018-05-16‘ s1 from dual
union all select null str from dual
union all select ‘abc012-1598‘ s1 from dual
) where regexp_like(s1,‘^\d{4}-\d{2}-\d{2}$‘)
;

2018-05-16

-----只取数字部分,字符替换掉
select id,regexp_replace(a1,‘[^0-9]‘) from (
select 1 id,‘1‘ a1 from dual union all
select 2 id,‘a1b89‘ a1 from dual union all
select 3 id,‘ ‘ a1 from dual union all
select 4 id,null a1 from dual union all
select 5 id,‘198c70205‘ a1 from dual
) ;
1 1
2 189
3
4
5 19870205

-----找出含有 xf 或 AB 的
select * from (
select 1 id, ‘zfood‘ a1 from dual union all
select 2 id, ‘xfood‘ a1 from dual union all
select 3 id, ‘Z021‘ a1 from dual union all
select 4 id, ‘cfood‘ a1 from dual union all
select 5 id, ‘AB78‘ a1 from dual union all
select 6 id, ‘x‘ a1 from dual
) where regexp_like(a1,‘xf|AB‘)
2 xfood
4 AB78

-----找出含有 x 或 f 或 A 或 B 的
select * from (
select 1 id, ‘zfood‘ a1 from dual union all
select 2 id, ‘xfood‘ a1 from dual union all
select 3 id, ‘Z021‘ a1 from dual union all
select 4 id, ‘cfood‘ a1 from dual union all
select 5 id, ‘AB78‘ a1 from dual union all
select 6 id, ‘x‘ a1 from dual
) where regexp_like(a1,‘[xf|AB]‘)
1 zfood
2 xfood
4 cfood
5 AB78
6 x

小结:

^放在[]外表示开头,放在[]里面表示非;

$表示结尾;

+表示一个或多个;

\d和[0-9]都表示数字;

{4}表示4个;

[]表示里面的字符一个一个匹配;

|表示或者,没有[]的|表示多个字符一起匹配;

 

oracle11Gregexp_like用法示例

原文:https://www.cnblogs.com/jiangqingfeng/p/10955541.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!