oracle 正则表达式4个主要函数
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,Oracle使用正则表达式4个主要函数:1、regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单:2、regexp_substr 函数,和 subs
千家信息网最后更新 2025年02月07日oracle 正则表达式4个主要函数
Oracle使用正则表达式4个主要函数:
1、regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单:
2、regexp_substr 函数,和 substr 类似,用于拾取合符正则表达式描述的字符子串,语法如下:
3、regexp_instr 函数,和 instr 类似,用于标定符合正则表达式的字符子串的开始位置,语法如下:
4、regexp_replace 函数,和 replace 类似,用于替换符合正则表达式的字符串,语法如下:
这里解析一下几个参数的含义:
1、source_char,输入的字符串,可以是列名或者字符串常量、变量。
2、pattern,正则表达式。
3、match_parameter,匹配选项。
取值范围: i:大小写不敏感; c:大小写敏感;n:点号 . 不匹配换行符号;m:多行模式;x:扩展模式,忽略正则表达式中的空白字符。
4、position,标识从第几个字符开始正则表达式匹配。
5、occurrence,标识第几个匹配组。
6、replace_string,替换的字符串。
--创建表及测试数据
create table tmp aswith data as (select 'like' as id ,'a9999' as str from dual union allselect 'like' ,'a9c' from dual union allselect 'like' ,'A7007' from dual union allselect 'like' ,'123a34cc' from dual union allselect 'substr' ,'123,234,345' from dual union allselect 'substr' ,'12,34.56:78' from dual union allselect 'substr' ,'123456789' from dual union allselect 'instr' ,'192.168.0.1' from dual union allselect 'replace' ,'(020)12345678' from dual union allselect 'replace' ,'001517729C28' from dual)select * from data ;
SELECT * FROM tmp;--查询结果如下
--regexp_like 示例--1.匹配有字母 "a"的字符不区分大小写,且匹配任意数字\d :匹配任意数字字符select str from tmp where id = 'like' and regexp_like(str,'a\d+','i');
select str from tmp where id='like' and regexp_like(str, 'a\d+');
select str from tmp where id='like' and regexp_like(str,'^a\d+');
SELECT str from tmp where id='like' and regexp_like(str,'^a\d+$');
--regexp_substr示例1SELECTstr,regexp_substr(str,'[^,]+') str_1_1,regexp_substr(str,'[^,]+',1,1) str_1_1,regexp_substr(str,'[^,]+',1,2) str_1_2, -- occurrence 第几个匹配组regexp_substr(str,'[^,]+',2,1) str_2_1 -- position 从第几个字符开始匹配from tmpwhere id='substr';
--regexp_substr示例2SELECTSTR,REGEXP_SUBSTR(STR, '\d') STR,REGEXP_SUBSTR(STR, '\d+', 1, 1) STR,REGEXP_SUBSTR(STR, '\d{2}', 1, 2) STR,REGEXP_SUBSTR(STR, '\d{3}', 2, 1) STRFROM TMPWHERE ID = 'substr';
--regexp_instr示例1SELECTSTR,REGEXP_INSTR(STR, '\.') IND,REGEXP_INSTR(STR, '\.', 1, 2) IND,REGEXP_INSTR(STR, '\.', 5, 2) INDFROM TMPWHERE ID = 'instr';
--regexp_instr示例2SELECTregexp_instr('192.168.0.1','\.',1,level) ind , -- 点号. 所在的位置regexp_instr('192.168.0.1','\d',1,level) ind -- 每个数字的位置from dualconnect by level <= 9
--regexp_replace示例SELECT STR,REGEXP_REPLACE(STR, '020', 'GZ') STR,REGEXP_REPLACE(STR, '(\d{3})(\d{3})', '<\2\1>') STR FROM TMPWHERE ID = 'replace';
--综合示例WITH SUDOKU AS(SELECT '020000080568179234090000010030040050040205090070080040050000060289634175010000020' AS LINEFROM DUAL),TMP AS(SELECT REGEXP_SUBSTR(LINE, '\d{9}', 1, LEVEL) ROW_LINE, LEVEL COLFROM SUDOKUCONNECT BY LEVEL <= 9)SELECT REGEXP_REPLACE(ROW_LINE, '(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)', '\1 \2 \3 \4 \5 \6 \7 \8 \9') ROW_LINEFROM TMP
源文:https://www.cnblogs.com/suinlove/p/3981454.html
字符
表达式
正则
示例
函数
字符串
语法
位置
大小
数字
标识
模式
参数
变量
含义
字母
常量
所在
换行符
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
知乎网络安全与犯罪
软件开发公司运营范围
网络安全第一课时教案
微信自带的数据库
青岛泽旭网络技术有限公司
如何认识防范网络安全问题
网络安全法四个严禁
网页服务器停止响应
软件开发各阶段的意思
2021网络安全手册
政研室网络安全宣传周
广州新华互联网科技学校地图
百度时代网络技术和百度关系
杭州趣的网络技术有限公司
戴尔服务器怎么进入管理页面
传真服务器安全吗
金融数据库博士
部队网络安全大检查
湖北软件开发的费用
excel 表格与数据库
数据库查询系统 源码
我的世界1.4.7服务器
承德盘古网络技术有限公司招聘
211软件开发学校排名
云帮手服务器管理面板怎么样
北京erp软件开发
网络安全病毒防治措施
数字经济如何做好网络安全
岳阳市云推网络技术有限公司
软件开发前思维导图