正则表达式(_ % regexp_like)

时间:2023-02-07 21:05:43

'[^\.0-9]'——不含小数点和数字的字符串,^在中括号内表非

select '123' aa from dual where regexp_like( '123', '[^\.0-9]' ) --没有记录,不存在子集(无论是一参对二参,还是二参对一参)
select '123' aa from dual where regexp_like( '123b', '[^\.0-9]' ) --有记录 regexp_like( '123b', 'b' )
select '123' aa from dual where regexp_like( 'abc', '[^\.0-9]' ) --有记录regexp_like( '123b', 'b' )

^在中括号外 表字符串以xx开头

select '123' aa from dual where regexp_like( '1b' ,'^1[2b]' ,'i' ); --有记录,序列中的一个, 查询以12开头的记录.不区分大小写。
select '123' aa from dual where regexp_like( '1b' ,'^12|b' ,'i' ); --有记录,两者中的一个, 查询以12或者1b开头的记录.不区分大小写。

例子:商户名中含有数字的情况

select *
from nac_user.t_r_merchant tr
where tr.rm_status = '1'
and regexp_like(tr.rm_merchname, '[0-9]')
order by tr.rm_merchname