sql正則表達式, 什么是sql正則表達式?不知道小伙伴們今天來看看邊肖的分享吧!
正則表達式中的元字符:
元字符
意義
示例/
指示要匹配的字符是特殊字符、常量還是后面的引用。(引用后,重復最后一次匹配)
/n Match換行符//Match/Match (match)字符串的開頭A匹配arwen,但不匹配barwen。$
匹配字符串的結束位置en$匹配arwen,但不匹配arwenb。*
A*rwen可以通過匹配前面的字符0次或更多次來匹配rwen或aaarwen。一個rwen可以通過匹配前面的字符1次或更多次來匹配a rwen或aaarwen。但是比不上rwen。匹配前一個字符0次還是1次?Rwen可以比得上arwen或者rwen,但是比不上阿爾溫。{n}與前面的字符精確匹配n次。
{n,}表示至少有n個匹配項。沒有上限。
Ar{1,2 }文可以配arwen,arrwen。但它和阿文或阿倫文都不匹配.點,它可以匹配除空字符和換行符之外的任何單個字符。Arw.n .它能和arwen匹配,arwin。但是比不上arween或者arwn。(模式)括號中的模式是子正則表達式。
match_option的值如下:' c '表示匹配區(qū)分大小寫(默認值);I表示匹配不區(qū)分大小寫;n(。)點可以表示所有單個字符,包括換行符。(不知道換行符用在哪里。我只知道chr(10)可以用來表示sql中的換行符。當有換行符時,m字符串被視為多行,以便$可以匹配每一行的結尾。否則,$只匹配字符串的最后一個位置。
示例:select * from EMP where regexp _ like(ename,a[a-z]* n $);您可以在ename中找到以a開頭并以n結尾的行。例如,ename是arwen或arwin或anden,但阿爾溫不能匹配,因為默認情況下區(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ù)相關性:start開始搜索的位置;出現(xiàn)次數(shù)指示應該返回模式出現(xiàn)的次數(shù);Return_option指定應該返回哪個整數(shù)。如果該參數(shù)為0,
意味著要返回的整數(shù)是一個字符在x中的位置;如果參數(shù)是除0之外的整數(shù),
意味著要返回的整數(shù)是X中pattern之后出現(xiàn)的字符的位置;Match_option修改默認匹配設置。它與regexp_like中的相同。
示例:
DECLARE
V_RESULTINTEGER;
BEGIN
SELECTREGEXP_INSTR(hello world,o,1,1,0)INTOV_RESULT
FROMDUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
結果是5。即字母o第一次出現(xiàn)的位置。
如果regexp _ instr (hello world,o,1,1,n)其中n為0以外的整數(shù),如1,3,則結果為6,第一次表示字母o的最后一個字符的位置。
如果regexp _ instr (hello world,o,1,2,0),則結果為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),則結果為hellx wxrld .
如果REGEXP_REPLACE(hello world,o,x,1,2)則結果為你好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;
結果是ll
只有找到匹配的字符串,才會返回匹配的字符。如果沒有找到,它將返回空值。
sql正則表達式,以上就是本文為您收集整理的sql正則表達式最新內容,希望能幫到您!更多相關內容歡迎關注。