regexp_like判斷是否含有非數字(正則表達式)


一、regexp_like函數

1、語法

REGEXP_LIKE(source_char,pattern[,match_option])  //正則表達式匹配函數
REGEXP_REPLACE(source_char,pattern[,replacestr[,position[,occurrence[,match_option]]]])  //正則表達式替換函數
REGEXP_INSTR(source_char,pattern[,position[,occurrence[,return_option[,match_option]]]])  //正則表達式返回字符出現位置
REGEXP_SUBSTR(source_char,pattern[,position[,occurrence[,match_option]]])  //正則表達式截取某字符串
REGEXP_COUNT(source_char,pattern[,match_option])  //正則表達式統計字符串出現的次數,11g以后的版本

//source_char是源數據
//pattern是表達式
//match_option為c,區分大小寫,i是不分大小寫(ignore)
//replacestr是替換的字符
//position是開始位置
//occurrence是第幾次出現
//return_option為0是返回該字符出現的位置,不為0時返回該字符出現的下一個位置

 

2、正則表達式

(1)、[] 元字符表示 范圍

①[.0-9] 表示 小數點和0至9范圍內 的字符

②[^.0-9] 表示非 小數點和0至9范圍內 的字符

 

(2)、^ 元字符有兩種含義

①^[.0-9]匹配以 .0-9開頭的字符,^ 匹配字符的開始位置

②[^.0-9]匹配非 .0-9的字符

 

(3)、* 運算符表示 匹配前面的子表達式0次或多次

(4)、+ 運算符表示 匹配前面的子表達式1次或多次

(5)、? 運算符表示 匹配前面的子表達式0次或1次

(6)、$ 運算符表示 匹配字符的結束位置 ,[.0-9]$ 匹配 .0-9結尾的字符

 

3、測試

(1)、匹配非數字

select  (case when regexp_like ('.11','([^.0-9])+') then 1 else 0 end)test from dual
//匹配 .0-9 范圍內的字符,返回1表示是非數字,0表示是數字。.11可以當做是數字

 

(2)、測試小數點開頭

select 5*'.11' test from dual

 


免責聲明!

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



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