视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php获取当前时间 split函数python nginx location 正则匹配 ppt布尔运算工具在哪里 input disabled属性 女网名简单大方有内涵 js charcodeat js获取当前url layer.open传参数到子页面 ipv6地址类型 一个圈一个竖杠是什么符号 input默认值 electron打包成exe 浏览器cookie要不要打开 图像采集是什么意思 input获取焦点 0x80240017未指定错误 tinfoil使用教程 js object.assign python九九乘法表代码 python正则表达式提取文本 世界三大记忆法 一证通查怎么查自己名下手机号 vue async mysql时间格式转换 js 获取当前url sql 正则表达式 微信能发消息,不能视频聊天 js location 电话号码正则表达式 json格式化工具有哪些 dg分区工具怎么用 vue 时间格式化 linux安装anaconda3 vscode输出中文乱码 anaconda 安装pytorch elasticsearch安装教程 fileinputstream中文乱码 pycharm 安装教程 13pro和13区别
sql正则表达式
2022-01-22 13:52:19 责编:李赢赢
文档

sql正则表达式是什么呢?不知道的小伙伴来看看小编今天的分享吧!

正则表达式中的元字符:

元字符

意思

例子

\

说明要匹配的字符是一个特殊字符、常量或者后者引用。(后引用重复上一次的匹配)

\n 匹配换行符
\\ 匹配 \
匹配(匹配( 匹配 )
^匹配字符串的开头位置^a匹配arwen.但不匹配barwen.

$

匹配字符串的末尾位置en$匹配arwen.但不匹配arwenb.

*

匹配前面的字符0次或多次a*rwen可以匹配rwen或aaarwen.
+匹配前面的字符1次或多次a+rwen可以匹配arwen或aarwen.但不能匹配rwen.
?匹配前面的字符0次或1次a?rwen可以匹配arwen或rwen.但不能匹配aarwen.
{n}匹配前面的字符恰好是n次,其中n是整数ar{2}wen可以匹配arrwen.但不能匹配arwen或arrrwen.
{n,m}

匹配前面的字符至少是n次,最多是m次.如果写成

{n,}表示最少匹配n次.没有上限.

ar{1,2}wen可以匹配arwen,arrwen.但不匹配awen或arrrwen.
.点号,匹配除null,换行以外的任意单个字符arw.n.可以匹配arwen,arwin.但不能匹配arween或arwn.
(pattern)括号中pattern是一个子正则表达式,匹配指定pattern模式的一个子表达式。其实括号就像一般语言表达式中的括号.有时多加些括号可增强可读性.另外的用处见下面关于\n的描述.
x|y匹配“或”x|y可以匹配x或者y
[abc]可以匹配abc中的任何单个字符hello[abc]可以匹配helloa,hellob,helloc
[a-z]可以匹配指定范围内的任何单个字符hell[a-z]可以匹配hello或者hellz
[::]指定一个字符类,可以匹配该类中的任何字符[:alphanum:]可以匹配字符0-9、A-Z、a-z
[:alpha:]可以匹配字符A-Z、a-z
[:blank:]可以匹配空格或tab键
[:digit:]可以匹配数字0-9
[:graph:]可以匹配非空字符
[:lower:]可以匹配小写字母a-z
[:print:]与[:graph:]类似,不同之处在于[:print:]包括空格字符
[:punct:]可以匹配标点符号.,""等等
[:space:]可以匹配所有的空字符
[:upper:]可以匹配大写字母A-Z
[:xdigit:]可以匹配十六进制数字0-9、A-F、a-f
\n这是对前一次匹配命中的一个后引用,其中n是一个正整数arw(en)\1可以匹配arwenen.注意\1前面必须是个加括号的子表达式.

1.regexp_like:

regexp_like(x,pattern[,match_option]),查看x是否与pattern相匹配,该函数还可以提供一个可选的参数match_option字符串说明默认的匹配选项。match_option的取值如下:
‘c’ 说明在进行匹配时区分大小写(缺省值);
'i' 说明在进行匹配时不区分大小写;
'n'(.)点号能表示所有单个字符,包括换行(俺还不知道什么地方有用到换行.只知道sql里面可以用chr(10)表示换行.
'm' 字符串存在换行的时候当作多行处理.这样$就可匹配每行的结尾.不然的话$只匹配字符串最后的位置.

示例:select * from emp where regexp_like(ename,'^a[a-z]*n$');可以查找ename中以a开头以n结尾的行.例如ename为arwen或arwin或anden.但Arwen不能被匹配.因为默认是区分大小写.如果是select * from emp where regexp_like(ename,'^a[a-z]*n$','i')则可以查找ename为Arwen的行记录.

2.regexp_instr:

REGEXP_INSTR(x,pattern[,start[,occurrence[,return_option[, match_option]]]])用于在x中查找pattern。返回pattern在x中出现的位置。匹配位置从1开始。可以参考字符串函数 INSTR(),参数相关:
'start' 开始查找的位置;
'occurrence' 说明应该返回第几次出现pattern的位置;
'return_option' 说明应该返回什么整数。若该参数为0,则说明要返回的整数是x中的一个字符的位置;若该参数为非0的整数,则说明要返回的整数为x中出现在pattern之后 的字符的位置;
'match_option' 修改默认的匹配设置.与regexp_like里面的相同.

示例:

DECLARE

V_RESULT INTEGER ;

BEGIN

SELECT REGEXP_INSTR('hello world','o',1,1,0)INTO V_RESULT

FROM DUAL;

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[,replace_string[,start[,occurrence[, match_option]]]])用于在x中查找pattern,并将其替换为replae_string。可以参考字符串函数 REPLACE(),参数同REGEXP_INSTR函数

示例:

DECLARE

V_RESULT varchar2(90);

BEGIN

SELECT REGEXP_REPLACE('hello world','o','x',1,1)INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END;

结果为hellx world.

如果REGEXP_REPLACE('hello world','o','x'),则结果为hellx wxrld.

如果 REGEXP_REPLACE('hello world','o','x',1,2)则结果为hello wxrld.

4.regexp_substr:

REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])用于在x中查找pattern并返回。可以参考字符串函数 SUBSTR(),参数同REGEXP_INSTR函数.

例如:

DECLARE

V_RESULT VARCHAR2(255);

BEGIN

SELECT REGEXP_SUBSTR('hello world','l{2}')INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END ;

结果为ll

查询到匹配的字符串才返回匹配的字符.没查到就返回空.

以上就是小编今天的分享了,希望可以帮助到大家。

下载本文
显示全文
专题php获取当前时间php获取当前时间专题split函数pythonsplit函数python专题nginx location 正则匹配nginx location 正则匹配专题ppt布尔运算工具在哪里ppt布尔运算工具在哪里专题input disabled属性input disabled属性专题女网名简单大方有内涵女网名简单大方有内涵专题js charcodeatjs charcodeat专题js获取当前urljs获取当前url专题layer.open传参数到子页面layer.open传参数到子页面专题ipv6地址类型ipv6地址类型专题一个圈一个竖杠是什么符号一个圈一个竖杠是什么符号专题input默认值input默认值专题electron打包成exeelectron打包成exe专题浏览器cookie要不要打开浏览器cookie要不要打开专题图像采集是什么意思图像采集是什么意思专题input获取焦点input获取焦点专题0x80240017未指定错误0x80240017未指定错误专题tinfoil使用教程tinfoil使用教程专题js object.assignjs object.assign专题python九九乘法表代码python九九乘法表代码专题valueerror是什么错误valueerror是什么错误专题16进制颜色转换rgb16进制颜色转换rgb专题mysql json_extractmysql json_extract专题js queryselectorjs queryselector专题js assignjs assign专题js endswithjs endswith专题mysql 替换函数mysql 替换函数专题js lastindexofjs lastindexof专题vue main.jsvue main.js专题mysql text类型mysql text类型专题字段匹配专题mysql regex专题sql字符串匹配专题sql匹配字符串专题oracle正则专题mysql匹配特殊字符专题mysql怎么使用正则专题oracle 正则专题mysql正则替换专题mysql 匹配特殊字符专题mysql 正则查询专题mysql 正则 提取专题mysql 正则提取专题mysql 正则替换专题数据库正则覆盖专题sqlserver 正则专题sql正则专题防sql注入正则专题sql 正则替换专题sql server 正则专题