正則表達式:
無論是在前端還是后臺正則表達式都是一個至關重要的知識點,例如判斷一個手機號碼輸入是否正確,如果使用Java、C或者其他語言進行字符串進行判斷,也許寫幾十行代碼都不一定能解決,而且漏洞百出,而使用正則表達式,一行代碼則可輕易解決,下面是舉例說明正則表達式的用法:
1: \d 代表一個(阿拉伯數字) 任意數字
例如:判斷用戶輸入的是否為11位數字(當然手機號碼是不能這么簡答的表達,只是解釋一下\d的用法)
select 'ok'
from dual
where regexp_like('18812345678','\d\d\d\d\d\d\d\d\d\d\d')
2: . 代表一個(任意字母) 任意字母
這里需要注意的是,如果輸入的數字確實需要字母 . 的話,不能直接輸 . 要轉換一下格式,輸入 \. 即可,這個需要注意。
3: [[:number:]] 一個任意數字(可以使十六進制)
這個用的并不多,如果現實十六進制,可以使用如下方式即可
select 'ok'
from dual
where regexp_like('str','[0-9a-fA-F]')
4: [[:alpha:]] 一個任意大小寫字母
5: [ ] 匹配到方括號內的其中一個字母
方括號中只能匹配到其中的任意一個字母,或者是7 或者是8或者是9,只能是1個
select 'ok'
from dual
where regexp_like('8','[379]')
例如下面的就是ASCII碼中,數字3到ASCII碼 小寫的 a 其中的任意一個字符的匹配
select 'ok'
from dual
where regexp_like('9','[3-a]')
當然如果是12345678這樣的連續的數字可以這么寫
select 'ok'
from dual
where regexp_like('str','[1-8]')
如果是要匹配 12345678 中的其中一個,或者是字母 a也行,就可以這么寫,a可以寫到前邊,也可以寫到后面,這并無所謂,因為只匹配一個而已
select 'ok'
from dual
where regexp_like('str','[a1-8]')
6: () 單詞匹配
單詞匹配,一般用豎線隔開,例如:小明喜歡吃蘋果或者香蕉或者櫻桃,此時就應該是用單詞的匹配,在圓括號中任選一個。
select 'ok'
from dual
where regexp_like('小明喜歡吃蘋果.','小明喜歡吃(蘋果|香蕉|櫻桃)\.')
7:量詞:來修飾左側的元素的數量,三個量詞
7.1: * 0到任意多個
7.2: + 1到任意多個
7.3: ? 0或者1個
{N},代表左側有N個數據,比如上面的手機號碼驗證,\d 需要輸入9個,這里就可以使用{N}來簡化一下,\d是數字,然后\d{10},代表這里有10個數字
select 'ok'
from dual
where regexp_like('str','1\d{10}')
如果是:{2,10} 代表左側的東西 最少有2個,最多有10個
9:引導符: ^ :在正則表達式最前方使用 ^ ,代表只能按照表達式的格式去匹配
10:結束符: $ :在正則表達式最后面使用 ¥ ,代表只能按照表達式的格式去匹配
出現前導符的原因:因為正則表達式只匹配"表達式匹配條件的內容",之外的不匹配
11:\n 換行
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Oracle通過正則表達式分割字符串 REGEXP_SUBSTR的代碼詳解
- Oracle中正則表達式的使用實例教程
- Oracle 正則表達式實例詳解
- ORACLE數據庫中怎么求除數字、字母之外的非中文字符的正則表達式
- oracle正則表達式regexp_like的用法詳解
- Oracle正則表達式使用介紹
- Oracle 10G:PL/SQL正規表達式(正則表達式)手冊
- ORACLE 正則解決初使化數據格式不一致