昌鑫号

sql正则表达式(sql正则表达式查询)

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中的相同。

sql正则表达式查询

示例:

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第二次出现的位置。

sql正则表达式查询

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正则表达式最新内容,希望能帮到您!更多相关内容欢迎关注。

      
上一篇