海詩網(wǎng) 知識百科 sql正則表達(dá)式(plsql正則表達(dá)式)

sql正則表達(dá)式(plsql正則表達(dá)式)

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

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

元字符

意義

示例/

指示要匹配的字符是特殊字符、常量還是后面的引用。(引用后,重復(fù)最后一次匹配)

/n Match換行符//Match/Match (match)字符串的開頭A匹配arwen,但不匹配barwen。$

匹配字符串的結(jié)束位置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。(模式)括號中的模式是子正則表達(dá)式。

match_option的值如下:' c '表示匹配區(qū)分大小寫(默認(rèn)值);I表示匹配不區(qū)分大小寫;n(。)點可以表示所有單個字符,包括換行符。(不知道換行符用在哪里。我只知道chr(10)可以用來表示sql中的換行符。當(dāng)有換行符時,m字符串被視為多行,以便$可以匹配每一行的結(jié)尾。否則,$只匹配字符串的最后一個位置。

示例:select * from EMP where regexp _ like(ename,a[a-z]* n $);您可以在ename中找到以a開頭并以n結(jié)尾的行。例如,ename是arwen或arwin或anden,但阿爾溫不能匹配,因為默認(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)該返回哪個整數(shù)。如果該參數(shù)為0,

意味著要返回的整數(shù)是一個字符在x中的位置;如果參數(shù)是除0之外的整數(shù),

意味著要返回的整數(shù)是X中pattern之后出現(xiàn)的字符的位置;Match_option修改默認(rèn)匹配設(shè)置。它與regexp_like中的相同。

plsql正則表達(dá)式

示例:

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的最后一個字符的位置。

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

plsql正則表達(dá)式

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

只有找到匹配的字符串,才會返回匹配的字符。如果沒有找到,它將返回空值。

sql正則表達(dá)式,以上就是本文為您收集整理的sql正則表達(dá)式最新內(nèi)容,希望能幫到您!更多相關(guān)內(nèi)容歡迎關(guān)注。

本文來自網(wǎng)絡(luò),不代表海詩網(wǎng)立場,轉(zhuǎn)載請注明出處:http://x91880.com/n/169897.html
      

php獲取當(dāng)前時間(php獲取當(dāng)前時間的函數(shù))

發(fā)表回復(fù)
聯(lián)系我們
聯(lián)系我們

在線咨詢: QQ交談

郵箱: 3587015498@qq.com

工作時間:周一至周五,9:00-17:30,節(jié)假日休息

關(guān)注微信
微信掃一掃關(guān)注我們
微信掃一掃關(guān)注我們
關(guān)注微博
返回頂部