sql, 什么是sql正則表達(dá)式?不知道小伙伴們今天來看看邊肖的分享吧!
正則表達(dá)式中的元字符:
元字符
意義
示例/
指示要匹配的字符是特殊字符、常量還是后面的引用。(引用后,重復(fù)最后一次匹配)
/n Match換行符//Match/Match (match)字符串的開頭A匹配arwen,但不匹配barwen。$
匹配字符串的結(jié)束位置en$匹配arwen,但不匹配arwenb。*
A*rwen可以通過匹配前面的字符0次或更多次來匹配rwen或aaarwen。一個(gè)rwen可以通過匹配前面的字符1次或更多次來匹配a rwen或aaarwen。但是比不上rwen。匹配前一個(gè)字符0次還是1次?Rwen可以比得上arwen或者rwen,但是比不上阿爾溫。{n}與前面的字符精確匹配n次。
{n,}表示至少有n個(gè)匹配項(xiàng)。沒有上限。
Ar{1,2 }文可以配arwen,arrwen。但不是阿文或阿倫文.點(diǎn)和除空字符和換行符之外的任何單個(gè)字符。arw.n能比得上arwen,arwin。但是比不上arween或者arwn。(模式)括號(hào)中的模式是子正則表達(dá)式。
match_option的值如下:' c '表示匹配區(qū)分大小寫(默認(rèn)值);I表示匹配不區(qū)分大小寫;n(。)點(diǎn)可以表示所有單個(gè)字符,包括換行符。(不知道換行符用在哪里。我只知道chr(10)可以用來表示sql中的換行符。當(dāng)有換行符時(shí),m字符串被視為多行,以便$可以匹配每一行的結(jié)尾。否則,$只匹配字符串的最后一個(gè)位置。
示例:select * from EMP where regexp _ like(ename,a[a-z]* n $);您可以在ename中找到以a開頭并以n結(jié)尾的行。例如,ename是arwen或arwin或anden,但阿爾溫不能匹配,因?yàn)槟J(rèn)情況下區(qū)分大小寫。如果是select * from EMP where regexp _ like(ename,a [a-z] * n $,I),可以找到埃納姆為阿爾溫的行記錄。
2.regexp_instr:
REGEXP_INSTR(x, mode [,start [,appear [,return option [,match option]]) is used to find patterns in X.
返回模式在x軸上的位置,匹配位置從1開始??梢詤⒖甲址瘮?shù)INSTR(),
參數(shù)相關(guān)性:start開始搜索的位置;出現(xiàn)次數(shù)指示應(yīng)該返回模式出現(xiàn)的次數(shù);Return_option指定應(yīng)該返回哪個(gè)整數(shù)。如果該參數(shù)為0,
意味著要返回的整數(shù)是一個(gè)字符在x中的位置;如果參數(shù)是除0之外的整數(shù),
意味著要返回的整數(shù)是X中pattern之后出現(xiàn)的字符的位置;Match_option修改默認(rèn)匹配設(shè)置。它與regexp_like中的相同。
示例:
DECLARE
V_RESULTINTEGER;
BEGIN
SELECTREGEXP_INSTR(hello world,o,1,1,0)INTOV_RESULT
FROMDUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
結(jié)果是5。即字母o第一次出現(xiàn)的位置。
如果regexp _ instr (hello world,o,1,1,n)其中n為0以外的整數(shù),如1,3,則結(jié)果為6,第一次表示字母o的最后一個(gè)字符的位置。
如果regexp _ instr (hello world,o,1,2,0),則結(jié)果為9。它表示字母o第二次出現(xiàn)的位置。
3.regexp_replace:
REGEXP_REPLACE(x, pattern [,replacement string [,start [,occurrence of [,matching option]]) is used to find patterns in x,
并用replae _ string替換它。您可以使用與REGEXP_INSTR函數(shù)相同的參數(shù)來引用字符串函數(shù)REPLACE()。
示例:
DECLARE
V_RESULT varchar2(90);
BEGIN
SELECTREGEXP_REPLACE(hello world,o,x,1,1)INTOV_RESULT
FROMDUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
The result is a hell world.
如果REGEXP_REPLACE(hello world,o,x),則結(jié)果為hellx wxrld .
如果REGEXP_REPLACE(hello world,o,x,1,2)則結(jié)果為你好wxrld .
4.regexp_substr:
REGEXP_SUBSTR(x, pattern[, start[, occurrence[, match_option]]) is used to find a pattern in x and return it. You can refer to the string function SUBSTR (),
參數(shù)與REGEXP_INSTR函數(shù)相同。
例如:
DECLARE
V_RESULT VARCHAR2(255);
BEGIN
SELECTREGEXP_SUBSTR(hello world,l{2})INTOV_RESULT
FROMDUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
結(jié)果是ll
只有找到匹配的字符串,才會(huì)返回匹配的字符。如果沒有找到,它將返回空值。
sql,以上就是本文為您收集整理的sql最新內(nèi)容,希望能幫到您!更多相關(guān)內(nèi)容歡迎關(guān)注。