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 '表示匹配区分大小写(默认值);I表示匹配不区分大小写;n(。)点可以表示所有单个字符,包括换行符。(不知道换行符用在哪里。我只知道chr(10)可以用来表示sql中的换行符。当有换行符时,m字符串被视为多行,以便$可以匹配每一行的结尾。否则,$只匹配字符串的最后一个位置。
示例:select * from EMP where regexp _ like(ename,a[a-z]* n $);您可以在ename中找到以a开头并以n结尾的行。例如,ename是arwen或arwin或anden,但阿尔温不能匹配,因为默认情况下区分大小写。如果是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开始。可以参考字符串函数INSTR(),
参数相关性:start开始搜索的位置;出现次数指示应该返回模式出现的次数;Return_option指定应该返回哪个整数。如果该参数为0,
意味着要返回的整数是一个字符在x中的位置;如果参数是除0之外的整数,
意味着要返回的整数是X中pattern之后出现的字符的位置;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第一次出现的位置。
如果regexp _ instr (hello world,o,1,1,n)其中n为0以外的整数,如1,3,则结果为6,第一次表示字母o的最后一个字符的位置。
如果regexp _ instr (hello world,o,1,2,0),则结果为9。它表示字母o第二次出现的位置。
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函数相同的参数来引用字符串函数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 (),
参数与REGEXP_INSTR函数相同。
例如:
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正则表达式最新内容,希望能帮到您!更多相关内容欢迎关注。