Oracle 正则表达式函数-REGEXP_SUBSTR 使用例子
Posted 王云十三
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 正则表达式函数-REGEXP_SUBSTR 使用例子相关的知识,希望对你有一定的参考价值。
原文在这 戳
REGEXP_SUBSTR
5个参数
第一个是输入的字符串
第二个是正则表达式
第三个是标识从第几个字符开始正则表达式匹配。(默认为1)
第四个是标识第几个匹配组。(默认为1)
第五个是是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
全部测试数据
SQL> select * from test_reg_substr;
A
-----------------------------------
ABC123XYZ
ABC123XYZ456
<Name>Edward</Name>
检索中间的数字
SQL> SELECT
2 REGEXP_SUBSTR(a,‘[0-9]+‘)
3 FROM
4 test_reg_substr
5 WHERE
6 REGEXP_LIKE(a, ‘[0-9]+‘);
REGEXP_SUBSTR(A,‘[0-9]+‘)
---------------------------------
123
123
检索中间的数字(从第一个字母开始匹配,找第2个匹配项目)
SQL> SELECT
2 NVL(REGEXP_SUBSTR(a,‘[0-9]+‘,1, 2), ‘-‘) AS a
3 FROM
4 test_reg_substr
5 WHERE
6 REGEXP_LIKE(a, ‘[0-9]+‘);
A
------------------------------------------------------
-
456
取得“字符集合”
SQL> SELECT
2 REGEXP_SUBSTR(a, ‘\w+‘)
3 FROM
4 test_reg_substr
5 WHERE
6 REGEXP_LIKE(a, ‘\w+‘);
REGEXP_SUBSTR(A,‘\W+‘)
-------------------------------
ABC123XYZ
ABC123XYZ456
Name
取得“字符集合”(从第一个字母开始匹配,找第2个匹配项目)
SQL> SELECT
2 NVL(REGEXP_SUBSTR(a, ‘\w+‘,1, 2), ‘-‘) AS a
3 FROM
4 test_reg_substr
5 WHERE
6 REGEXP_LIKE(a, ‘\w+‘);
A
---------------------------------------------------
-
-
Edward
以上是关于Oracle 正则表达式函数-REGEXP_SUBSTR 使用例子的主要内容,如果未能解决你的问题,请参考以下文章
Oracle中REGEXP_SUBSTR及其它支持正则表达式的内置函数小结
Oracle正则表达式函数:regexp_likeregexp_substrregexp_instrregexp_replace