最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

sql 正則表達(dá)式

來源:懂視網(wǎng) 責(zé)編:李贏贏 時(shí)間:2022-01-22 13:51:21
文檔

sql 正則表達(dá)式

元字符:說明要匹配的字符是一個(gè)特殊字符、常量或者后者引用,后引用重復(fù)上一次的匹配。^:匹配字符串的開頭位置。$:匹配字符串的末尾位置。*:匹配前面的字符0次或多次。+:匹配前面的字符1次或多次。?:匹配前面的字符0次或1次。
推薦度:
導(dǎo)讀元字符:說明要匹配的字符是一個(gè)特殊字符、常量或者后者引用,后引用重復(fù)上一次的匹配。^:匹配字符串的開頭位置。$:匹配字符串的末尾位置。*:匹配前面的字符0次或多次。+:匹配前面的字符1次或多次。?:匹配前面的字符0次或1次。

sql 正則表達(dá)式是什么呢?不知道的小伙伴來看看小編今天的分享吧!

正則表達(dá)式中的元字符:

元字符

意思

例子

\

說明要匹配的字符是一個(gè)特殊字符、常量或者后者引用。(后引用重復(fù)上一次的匹配)

\n 匹配換行符
\\ 匹配 \
匹配(匹配( 匹配 )
^匹配字符串的開頭位置^a匹配arwen.但不匹配barwen.

$

匹配字符串的末尾位置en$匹配arwen.但不匹配arwenb.

*

匹配前面的字符0次或多次a*rwen可以匹配rwen或aaarwen.
+匹配前面的字符1次或多次a+rwen可以匹配arwen或aarwen.但不能匹配rwen.
?匹配前面的字符0次或1次a?rwen可以匹配arwen或rwen.但不能匹配aarwen.
{n}匹配前面的字符恰好是n次,其中n是整數(shù)ar{2}wen可以匹配arrwen.但不能匹配arwen或arrrwen.
{n,m}

匹配前面的字符至少是n次,最多是m次.如果寫成

{n,}表示最少匹配n次.沒有上限.

ar{1,2}wen可以匹配arwen,arrwen.但不匹配awen或arrrwen.
.點(diǎn)號(hào),匹配除null,換行以外的任意單個(gè)字符arw.n.可以匹配arwen,arwin.但不能匹配arween或arwn.
(pattern)括號(hào)中pattern是一個(gè)子正則表達(dá)式,匹配指定pattern模式的一個(gè)子表達(dá)式。其實(shí)括號(hào)就像一般語(yǔ)言表達(dá)式中的括號(hào).有時(shí)多加些括號(hào)可增強(qiáng)可讀性.另外的用處見下面關(guān)于\n的描述.
x|y匹配“或”x|y可以匹配x或者y
[abc]可以匹配abc中的任何單個(gè)字符hello[abc]可以匹配helloa,hellob,helloc
[a-z]可以匹配指定范圍內(nèi)的任何單個(gè)字符hell[a-z]可以匹配hello或者h(yuǎn)ellz
[::]指定一個(gè)字符類,可以匹配該類中的任何字符[:alphanum:]可以匹配字符0-9、A-Z、a-z
[:alpha:]可以匹配字符A-Z、a-z
[:blank:]可以匹配空格或tab鍵
[:digit:]可以匹配數(shù)字0-9
[:graph:]可以匹配非空字符
[:lower:]可以匹配小寫字母a-z
[:print:]與[:graph:]類似,不同之處在于[:print:]包括空格字符
[:punct:]可以匹配標(biāo)點(diǎn)符號(hào).,""等等
[:space:]可以匹配所有的空字符
[:upper:]可以匹配大寫字母A-Z
[:xdigit:]可以匹配十六進(jìn)制數(shù)字0-9、A-F、a-f
\n這是對(duì)前一次匹配命中的一個(gè)后引用,其中n是一個(gè)正整數(shù)arw(en)\1可以匹配arwenen.注意\1前面必須是個(gè)加括號(hào)的子表達(dá)式.

1.regexp_like:

regexp_like(x,pattern[,match_option]),查看x是否與pattern相匹配,該函數(shù)還可以提供一個(gè)可選的參數(shù)match_option字符串說明默認(rèn)的匹配選項(xiàng)。match_option的取值如下:
‘c’ 說明在進(jìn)行匹配時(shí)區(qū)分大小寫(缺省值);
'i' 說明在進(jìn)行匹配時(shí)不區(qū)分大小寫;
'n'(.)點(diǎn)號(hào)能表示所有單個(gè)字符,包括換行(俺還不知道什么地方有用到換行.只知道sql里面可以用chr(10)表示換行.
'm' 字符串存在換行的時(shí)候當(dāng)作多行處理.這樣$就可匹配每行的結(jié)尾.不然的話$只匹配字符串最后的位置.

示例:select * from emp where regexp_like(ename,'^a[a-z]*n$');可以查找ename中以a開頭以n結(jié)尾的行.例如ename為arwen或arwin或anden.但Arwen不能被匹配.因?yàn)槟J(rèn)是區(qū)分大小寫.如果是select * from emp where regexp_like(ename,'^a[a-z]*n$','i')則可以查找ename為Arwen的行記錄.

2.regexp_instr:

REGEXP_INSTR(x,pattern[,start[,occurrence[,return_option[, match_option]]]])用于在x中查找pattern。返回pattern在x中出現(xiàn)的位置。匹配位置從1開始??梢詤⒖甲址瘮?shù) INSTR(),參數(shù)相關(guān):
'start' 開始查找的位置;
'occurrence' 說明應(yīng)該返回第幾次出現(xiàn)pattern的位置;
'return_option' 說明應(yīng)該返回什么整數(shù)。若該參數(shù)為0,則說明要返回的整數(shù)是x中的一個(gè)字符的位置;若該參數(shù)為非0的整數(shù),則說明要返回的整數(shù)為x中出現(xiàn)在pattern之后 的字符的位置;
'match_option' 修改默認(rèn)的匹配設(shè)置.與regexp_like里面的相同.

示例:

DECLARE

V_RESULT INTEGER ;

BEGIN

SELECT REGEXP_INSTR('hello world','o',1,1,0)INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END;

結(jié)果為5.即字母o第一個(gè)次出現(xiàn)的位置

如果regexp_instr('hello world','o',1,1,n)其中n為除0之外的整數(shù).比如1,3.則結(jié)果為6.表示第一次出現(xiàn)字母o的后面一個(gè)字符的位置.

如果regexp_instr('hello world','o',1,2,0)則結(jié)果為9.表示第二次出現(xiàn)字母o的位置.

3.regexp_replace:

REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[, match_option]]]])用于在x中查找pattern,并將其替換為replae_string??梢詤⒖甲址瘮?shù) REPLACE(),參數(shù)同REGEXP_INSTR函數(shù)

示例:

DECLARE

V_RESULT varchar2(90);

BEGIN

SELECT REGEXP_REPLACE('hello world','o','x',1,1)INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END;

結(jié)果為hellx world.

如果REGEXP_REPLACE('hello world','o','x'),則結(jié)果為hellx wxrld.

如果 REGEXP_REPLACE('hello world','o','x',1,2)則結(jié)果為hello wxrld.

4.regexp_substr:

REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])用于在x中查找pattern并返回??梢詤⒖甲址瘮?shù) SUBSTR(),參數(shù)同REGEXP_INSTR函數(shù).

例如:

DECLARE

V_RESULT VARCHAR2(255);

BEGIN

SELECT REGEXP_SUBSTR('hello world','l{2}')INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END ;

結(jié)果為ll

查詢到匹配的字符串才返回匹配的字符.沒查到就返回空.

以上就是小編今天的分享了,希望可以幫助到大家。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

sql 正則表達(dá)式

元字符:說明要匹配的字符是一個(gè)特殊字符、常量或者后者引用,后引用重復(fù)上一次的匹配。^:匹配字符串的開頭位置。$:匹配字符串的末尾位置。*:匹配前面的字符0次或多次。+:匹配前面的字符1次或多次。?:匹配前面的字符0次或1次。
推薦度:
標(biāo)簽: sql 正則表達(dá)式
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top