久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle中正則表達(dá)式怎么用

144次閱讀
沒有評論

共計 2494 個字符,預(yù)計需要花費 7 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 Oracle 中正則表達(dá)式怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Oracle 使用正則表達(dá)式離不開這 4 個函數(shù):regexp_like、regexp_substr、regexp_instr、regexp_replace。

regexp_like

該函數(shù)只能用于條件表達(dá)式,和 like 類似,但是使用的正則表達(dá)式進行匹配

// 查詢所有包含小寫字母或者數(shù)字的記錄。 select * from fzq where regexp_like(value, ^([a-z]+|[0-9]+)$

regexp_substr

該函數(shù)和 substr 類似,用于拾取合符正則表達(dá)式描述的字符子串, 該函數(shù)的定義如下

function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
 - String  輸入的字符串
 - pattern  正則表達(dá)式
 - position  標(biāo)識從第幾個字符開始正則表達(dá)式匹配。(默認(rèn)為 1) - occurrence  標(biāo)識第幾個匹配組。(默認(rèn)為 1) - modifier  取值范圍: i:大小寫不敏感; c:大小寫敏感; n:點號  .  不匹配換行符號; m:多行模式; x:擴展模式,忽略正則表達(dá)式中的空白字符。

下面是一些實例

-- 檢索中間的數(shù)字
SELECT REGEXP_SUBSTR(a, [0-9]+ ) FROM test_reg_substr WHERE REGEXP_LIKE(a,  [0-9]+ 
-- 檢索中間的數(shù)字(從第一個字母開始匹配,找第 2 個匹配項目)SELECT NVL(REGEXP_SUBSTR(a, [0-9]+ ,1, 2),  - ) AS a FROM test_reg_substr 
WHERE REGEXP_LIKE(a,  [0-9]+

regexp_instr

該函數(shù)和 instr 類似,用于標(biāo)定符合正則表達(dá)式的字符子串的開始位置,Oracle 數(shù)據(jù)庫中的 REGEXP_INSTR 函數(shù)的語法是

REGEXP_INSTR (source_char, pattern [, position [, occurrence 
 [, return_option [, match_parameter ] ] ] ] )
 - source_char  搜索值的字符表達(dá)式
 - pattern  正則表達(dá)式
 - position  可選。搜索在字符串中的開始位置。如果省略,則默認(rèn)為 1,這是字符串中的第一個位置。 - occurrence  可選。它是模式字符串中的第 n 個匹配位置。如果省略,默認(rèn)為 1。 
 - return_option  可選   指定 Oracle 返回的位置,
 0 那么 Oracle 將返回出現(xiàn)的第一個字符的位置。這是默認(rèn)的,
 1 則 Oracle 返回字符之后發(fā)生的位置。 - match_parameter  取值范圍: i:大小寫不敏感; c:大小寫敏感; n:點號  .  不匹配換行符號; m:多行模式; x:擴展模式,忽略正則表達(dá)式中的空白字符。

下面是一些實例

-- 找到字符串中的第一個”e”字的位置
-- 返回 2
SELECT REGEXP_INSTR (hello itmyhome ,  e) FROM dual; 
--“1”為開始位置  “2”是搜索第二個匹配的,”0”是 return_option 
-- 返回出現(xiàn)的第一個字符位置“c”是區(qū)分大小寫  ,所以將返回 13
SELECT REGEXP_INSTR (my is itMyhome ,  m , 1, 2, 0,  c) FROM dual;
SELECT REGEXP_INSTR (World filled with love ,  with , 1, 1, 0,  i) FROM dual;
-- 匹配多個備選
SELECT REGEXP_INSTR (Itmyhome ,  a|i|o|e|u) FROM dual;

regexp_replace

該函數(shù)和 replace 類似,用于替換符合正則表達(dá)式的字符串,Oracle 數(shù)據(jù)庫中的 REGEXP_REPLACE 函數(shù)的語法是

REGEXP_REPLACE(source_char, pattern [, replace_string 
 [, position [, occurrence [, match_parameter ] ] ] ])
 - source_char  搜索值的字符表達(dá)式
 - pattern  正則表達(dá)式
 - replace_string  可選。匹配的模式將被替換 replace_string 字符串。  如果省略 replace_string 參數(shù),將刪除所有匹配的模式,并返回結(jié)果字符串。 - position  可選。在字符串中的開始位置搜索。如果省略,則默認(rèn)為 1。 - occurrence  它是模式字符串中的第 n 個匹配位置。如果省略,默認(rèn)為 1。 - match_parameter
 i:大小寫不敏感; c:大小寫敏感; n:點號  .  不匹配換行符號; m:多行模式; x:擴展模式,忽略正則表達(dá)式中的空白字符。

如下是一些實例

-- 字符串替換
--luck is my network id
SELECT REGEXP_REPLACE (itmyhome is my network id ,  ^(\S*) ,  luck ) FROM dual;
-- 此示例將所指定的 \d 數(shù)字將以 #字符替換
--Result:  #, #, and ## are numbers in this example 
SELECT REGEXP_REPLACE (2, 5, and 10 are numbers in this example ,  \d ,  #) FROM dual;

以上是“Oracle 中正則表達(dá)式怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-04發(fā)表,共計2494字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 镇平县| 祁连县| 赞皇县| 佛学| 丹江口市| 柳河县| 平江县| 竹山县| 呼和浩特市| 长海县| 武义县| 正镶白旗| 克东县| 章丘市| 时尚| 襄垣县| 营山县| 荆州市| 阜新| 绵竹市| 广灵县| 商水县| 香港| 闽清县| 扎鲁特旗| 西华县| 金川县| 天水市| 辽阳县| 苏尼特左旗| 禹城市| 岗巴县| 红桥区| 天祝| 如东县| 辽阳市| 肥乡县| 青河县| 宁晋县| 新和县| 仁怀市|