位置: IT常识 - 正文

Oracle系列之十:Oracle正则表达式(“oracle”)

编辑:rootadmin
Oracle系列之十:Oracle正则表达式 Oracle正则表达式1. 基本语法2. POSIX字符类3. 正则表达式函数4. 常用正则表达式

推荐整理分享Oracle系列之十:Oracle正则表达式(“oracle”),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:“oracle”,oracles,oracleen,oracleen,oracles,oraclellg,oraclen,oracle%,内容如对您有帮助,希望把文章链接给更多的朋友!

正则表达式 (Regular expression) 是一种强大的文本处理工具,Oracle数据库自9i版本开始引入了正则表达式支持,可帮助开发者快速而准确地匹配、查找和替换字符串,广泛应用于数据查询、数据分析、数据清洗等领域。

1. 基本语法

Oracle正则表达式的语法基于Perl语言的正则表达式语法,区分大小写(case sensitive)。

(1)字符匹配

.:匹配除了换行外的任意一个字符;\d:匹配任何数字,相当于 [0-9];\D:匹配任何非数字字符,相当于 [^0-9];\w:匹配任何字母数字字符或下划线,相当于 [a-zA-Z0-9_];\W:表示匹配任何非字母数字字符或下划线,相当于 [^a-zA-Z0-9_]。

(2)限定符

*:匹配前一个字符出现0次或多次;+:匹配前一个字符出现1次或多次;?:匹配前一个字符出现0次或1次;{n}:匹配前一个字符出现n次;{n,}:匹配前一个字符出现n次或更多;{n,m}:匹配前一个字符出现n~m次。

'|' :指两项之间的一个选择。

e.g.

^([a-z]+|[0-9]+)$:表示所有小写字母或数字组合成的字符串。

(3)边界匹配

:匹配开始位置;$:匹配结束位置;\b:匹配单词边界,即单词的开头或结尾位置;\B:匹配非单词边界,即不是单词的开头或结尾位置。Oracle系列之十:Oracle正则表达式(“oracle”)

(4)分组和引用

():分组,标记一个子表达式的开始和结束位置;\num:引用第num个子表达式,num从1开始。

(5)字符集合

[]:表示一组字符中的任意一个。

(6)转义符

\\:表示转义一个字符。

oracle正则表达式还支持一些高级语法,例如贪婪匹配、非贪婪匹配、零宽断言(zero-width assertion)、后向引用(backreference)、捕获组等。

2. POSIX字符类

Oracle数据库中的POSIX字符类是一组特殊的字符类,用于在正则表达式中匹配特定的字符。

POSIX字符类以 [: 开头,以 :] 结尾,中间包含一个或多个字符,代表特定的字符集合。POSIX字符类中的字符集合可以是预定义的,也可以是自定义的。

[[:alpha:]] 任何字母,等同于字符集合 [a-zA-Z];[[:digit:]] 任何数字,等同于字符集合 [0-9];[[:alnum:]] 任何字母和数字,等同于字符集合 [a-zA-Z0-9];[[:space:]] 任何白字符;[[:upper:]] 任何大写字母;[[:lower:]] 任何小写字母;[[:punct:]] 任何标点符号;[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。

Oracle数据库中,POSIX字符类可以用于各种正则表达式相关的操作,如模式匹配、替换、分割等。由于Oracle数据库中的POSIX字符类与其他数据库或编程语言中的POSIX字符类可能略有不同,具体使用时需要查看相关文档。

3. 正则表达式函数

Oracle数据库提供了多种正则表达式函数,可以对文本数据进行匹配、替换等操作。

REGEXP_LIKE: 判断字符串是否匹配指定的正则表达式。

e.g. 查询员工名字以"S"开头,以"n"结尾的记录:

SELECT * FROM emp WHERE REGEXP_LIKE(emp_name, '^S.*n$');REGEXP_REPLACE: 替换字符串中的子串。

e.g. 将字符串"12345"中连续的三个数字替换成星号"*",输出 “*45”:

SELECT REGEXP_REPLACE('12345', '\d{3}', '*') FROM dual;REGEXP_SUBSTR: 提取字符串中匹配指定正则表达式的子串。

e.g. 从字符串"abc 123 def"中提取出连续的数字"123":

SELECT REGEXP_SUBSTR('abc 123 def', '\d+') FROM dual;REGEXP_INSTR: 返回字符串中匹配指定正则表达式的子串的位置。

e.g. 返回字符串"1ab2cd3ef"中第一个连续数字的起始位置,即1

SELECT REGEXP_INSTR('1ab2cd3ef', '\d+') FROM dual;4. 常用正则表达式-- 查询value中不是纯数字的记录select * from employee where not regexp_like(value,'^[[:digit:]]+$');-- 查询value中不包含任何数字的记录。select * from employee where regexp_like(value,'^[^[:digit:]]+$');--查询所有包含小写字母或者数字的记录。select * from employee where regexp_like(value,'^([a-z]+|[0-9]+)$');-- 提取字符串中的数字create or replace function EXTRACT_NUMBER(STR in varchar2) return varchar2 is POSITION number; STR_EXT varchar2(800); STR_TMP varchar2(800); result varchar2(800);begin STR_EXT:=STR; POSITION:=1; LOOP STR_TMP:=REGEXP_SUBSTR(STR_EXT,'([0-9]+)',POSITION); result:=result||STR_TMP; STR_EXT:= SUBSTR(STR_EXT,POSITION+LENGTH(STR_TMP),LENGTH(STR)); POSITION:=regexp_instr(STR_EXT,'([0-9]+)',1); exit when POSITION is null or POSITION=0; end loop; return(result);end EXTRACT_NUMBER;
本文链接地址:https://www.jiuchutong.com/zhishi/299494.html 转载请保留说明!

上一篇:Openpcdet训练自己的数据集(opencv怎么训练)

下一篇:腾讯一面—Android 系统启动流程详解(腾讯一面问什么)

  • 没有固定金额的合同叫什么合同
  • 应纳税所得额的会计分录
  • 子公司之间股权转让
  • 预缴企业所得税计税依据
  • 暂估入库收到发票后怎么做分录
  • 税金及附加和应交税费的关系
  • 小规模申请专票的申请理由怎么写
  • 什么时候库存商品什么时候主营业务收入
  • 分支机构需要填报企业所得税纳税申报表吗
  • 房地产企业销售未完工产品预计毛利率
  • 租赁公司扣押金
  • 未交增值税怎么记账
  • 渔业专业合作社简介
  • 货运代理公司可以开运输费发票吗
  • 抵扣勾选和退税勾选选错了怎么办
  • 附税分录怎么做?
  • 设备租赁涉及税种
  • 企业暂估收入申报,未开发票,几年以后要开票如何处理
  • 基建项目税率
  • 固定资产折旧会计做账
  • 客户扣款会计分录明细科目
  • 水利建设专项收入怎么申报不了
  • 收到进项税额发票怎么处理
  • mac辅助功能键盘
  • 事业单位坏账准备的计提方法
  • 计算机存储信息的基本单位是( )A字长B速度C内存D字节
  • 土地增值税的计税依据
  • 带息应收票据的核算
  • 企业所得税会计利润
  • 借条丢了怎么办打电话给家长
  • 如何选择一款适合自己家庭的凉席
  • vue每一列内容过多自动换行
  • 2023 最新最细 vite+vue3+ts 多页面项目架构,建议收藏备用!
  • 小规模拍卖公司怎么开票
  • yii gridview
  • yolov3实现
  • windowlocation用法
  • 图像分割csdn
  • 捐赠利得的会计科目
  • 材料采购是什么类科目
  • 接待客户的住宿费发票是开谁的
  • 深入理解计算机系统
  • mysql 子查询
  • 房地产按揭贷款政策
  • 应交税费的账务处理一般纳税人
  • 某首饰商城为增值税一般纳税人,2021年1月发生以下业务
  • 支付快递费怎么做账
  • 避险功能是什么意思
  • 收入 摊销
  • 其它应付款为负
  • 场地租赁费属于什么税收分类编码
  • 工业企业产值如何确定
  • 返聘退休人员工资标准
  • mysql保留整数
  • sqlserver排序规则怎么看
  • sql里面时间函数格式
  • Winserver2012下mysql 5.7解压版(zip)配置安装教程详解
  • Windows Server 2008下高效域管理体验
  • Windows Server 2008的NPS策略应用
  • Linux系统下findmnt命令使用全解
  • linux解析命令
  • centos7安装软件包命令
  • win7网络访问权限
  • windows8如何分盘
  • springmvc接收form表单
  • Extjs中通过Tree加载右侧TabPanel具体实现
  • 第一章初见第二章决定
  • node.js批量添加数据
  • 使用多进程web
  • androidstudio手机编程软件
  • python搜索引擎网络爬虫
  • angular api
  • python如何获取
  • pip install clashroyale
  • 收集和整理的区别
  • 湖南地税网上办税服务厅
  • 广东共青团如何解绑微信
  • 上海嘉定小学入学积分
  • 企业注册的步骤
  • 税务系统绩效管理首要目标
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设