Oracle的正則函數之regexp_like


前言:最近接到一個讓人肝疼的需求,用到了正則表達式去匹配字符串,順便鞏固一下oracle幾個正則表達式的用法

例子: 找出為帶小數點后兩位的數字,不論正負。比如3.12,-4.56這樣的。而3.145這樣的就不能被選擇出來。

--1 表准備
create table test_regexp
(
object varchar2(50)
);

--2 數據准備

insert into test_regexp (OBJECT)
values ('12.567');

insert into test_regexp (OBJECT)
values ('34567.89');

insert into test_regexp (OBJECT)
values ('1.23');

insert into test_regexp (OBJECT)
values ('-3223.1');

insert into test_regexp (OBJECT)
values ('-7.90');

insert into test_regexp (OBJECT)
values ('3');

insert into test_regexp (OBJECT)
values ('-99');

insert into test_regexp (OBJECT)
values ('AAAABC');

insert into test_regexp (OBJECT)
values ('acfrgAff');

insert into test_regexp (OBJECT)
values ('AfgvR');

insert into test_regexp (OBJECT)
values ('人生自古');

insert into test_regexp (OBJECT)
values ('稅務司');

insert into test_regexp (OBJECT)
values ('七龍珠123ASD');

insert into test_regexp (OBJECT)
values ('七龍珠2.15');

commit;

--3 

select * from test_regexp where   regexp_like(object,'^-?\d+\.\d{2}$') 

--4 返回結果

34567.89
1.23
-7.90

--5 總結分析

regexp_like(目標字段名稱,正則表達式)。可以在where做限制條件使用。從而select中返回符合正則表達式的限定的數據。

例如 :select 1  from dual where regexp_like('abc', 'd')。這里就不會返回任何的值;

而 select 1  from dual where regexp_like('abc', 'a')可以返回值 1。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM