小編給大家分享一下Oracle中正則表達(dá)式怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在東光等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需策劃設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),東光網(wǎng)站建設(shè)費(fèi)用合理。Oracle使用正則表達(dá)式離不開這4個函數(shù):regexp_like、regexp_substr、regexp_instr、regexp_replace。
regexp_like
該函數(shù)只能用于條件表達(dá)式,和 like 類似,但是使用的正則表達(dá)式進(jìn)行匹配
//查詢所有包含小寫字母或者數(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:點(diǎn)號 . 不匹配換行符號; m:多行模式; x:擴(kuò)展模式,忽略正則表達(dá)式中的空白字符。
下面是一些實(shí)例
--檢索中間的數(shù)字 SELECT REGEXP_SUBSTR(a,'[0-9]+') FROM test_reg_substr WHERE REGEXP_LIKE(a, '[0-9]+'); --檢索中間的數(shù)字(從第一個字母開始匹配,找第2個匹配項(xiàng)目) 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:點(diǎn)號 . 不匹配換行符號; m:多行模式; x:擴(kuò)展模式,忽略正則表達(dá)式中的空白字符。
下面是一些實(shí)例
--找到字符串中的第一個”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:點(diǎn)號 . 不匹配換行符號; m:多行模式; x:擴(kuò)展模式,忽略正則表達(dá)式中的空白字符。
如下是一些實(shí)例
--字符串替換 --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)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。