1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > oracle中匹配函数怎么用 ORACLE 使用正则表达式的函数

oracle中匹配函数怎么用 ORACLE 使用正则表达式的函数

时间:2022-01-18 13:48:12

相关推荐

oracle中匹配函数怎么用 ORACLE 使用正则表达式的函数

7) '{m,n}' 单字符匹配,一个精确地出现次数范围,m=

8) '\' 转义符。说明要匹配的字符是一个特殊字符;

9) '|'多字符匹配,相当于‘或’,两项之间的任意选择。例如a|b即是可以为a也可以为b,g(e|o)t就是匹配get和got;

10) '[]'多字符匹配,相当于集合,对[]中的字符进行任意匹配。例如y[iao]ng就是匹配ying/yang/yong;

最后说明比较特殊的是[::],它指定一个字符类,可以匹配该类中的任意字符。这里的字符类包括:

[:alphanum:] 可以匹配字符0-9、A-Z、a-z;

[:alpha:]可以匹配字符A-Z、a-z;

[:blank:]可以匹配空格或者tab键;

[:digit:]可以匹配数字 0-9;

[:upper:]可以匹配字符A-Z;

[:lower:]可以匹配字符a-z;

一)REGEXP_LIKE(x,pattern[,match_option]):用于在x中查找正则表达式pattern。match_option的取值如下:

'c' 说明在进行匹配时区分大小写(缺省值);

'i' 说明在进行匹配时不区分大小写;

例如:

SELECT * FROM a_user WHERE regexp_like(CODE,'[^[:digit:]]');

SELECT * FROM a_user WHERE regexp_like(CODE,'^[[:lower:]]|[[:digit:]]');

SELECT * FROM emp WHERE REGEXP_LIKE(TO_CHAR(birthdate,'YYYY'),'^198[0-9]$') AND REGEXP_LIKE(ename,'^F');

二)REGEXP_INSTR(x,pattern[,start[,occurrence[,return_option[, match_option]]]]):

用于在x中尝试匹配pattern,并返回匹配的位置。

'start' 开始查找的位置;

'occurrence' 说明应该返回第几次出现pattern的位置;

'return_option' 说明应该返回什么整数。若该参数为0,则说明要返回的整数是x中的一个字符的位置;若该参数为非0的整数,则说明要返回的整数为x中出现在pattern之后的字符的位置;

以上这三项皆为可选项。

例如:

SELECT CODE,regexp_instr(CODE,'[[:digit:]]+$') FROM a_user WHERE regexp_like(CODE,'[[:digit:]]$');

三)REGEXP_REPLACE(x,pattern,replace_string[,start[,occurrence[, match_option]]]):

用于在x中查找pattern,并将其替换为replae_string。

start,occurrence,match_option皆为可选项。

例如:

select regexp_replace(’I love you my sweet’,'s[[:alpha:]]{4}’,'honey’) from dual

四)REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]]):

用于在x中查找pattern并返回给定模式匹配的字符串。

参数同REGEXP_INSTR函数。

例如

SELECT CODE,regexp_instr(CODE,'[[:digit:]]+') FROM a_user WHERE regexp_like(CODE,'[[:digit:]]$');

select regexp_substr('I hate people ! My patience has ended ! Where shall my blood be spilled!', '[a-z]{5,}',1,2) from dual;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。