位置: 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 系统启动流程详解(腾讯一面问什么)

  • 戴尔g3散热风扇为啥有异响(戴尔g3散热风扇有异响)

    戴尔g3散热风扇为啥有异响(戴尔g3散热风扇有异响)

  • 联通pin码原始密码(联通pin密码是什么)

    联通pin码原始密码(联通pin密码是什么)

  • 对方加入黑名单怎么办对方才能收到信息(对方加入黑名单了 我这边添加好友什么显示)

    对方加入黑名单怎么办对方才能收到信息(对方加入黑名单了 我这边添加好友什么显示)

  • 小米10钢化膜不灵敏(小米10钢化膜不耐摔吗)

    小米10钢化膜不灵敏(小米10钢化膜不耐摔吗)

  • 手机有白色亮点怎么办(手机有白色的亮点)

    手机有白色亮点怎么办(手机有白色的亮点)

  • 4p的空开可以接220的电吗(4p空开可以当2p空开使用吗)

    4p的空开可以接220的电吗(4p空开可以当2p空开使用吗)

  • 电脑锁屏按哪两个键(电脑锁屏按哪个按钮)

    电脑锁屏按哪两个键(电脑锁屏按哪个按钮)

  • 小米9截图相册不显示(小米9截屏的图片在相册里找不到为什么)

    小米9截图相册不显示(小米9截屏的图片在相册里找不到为什么)

  • 红米k305g手机的呼吸灯在哪(红米k305g版使用窍门)

    红米k305g手机的呼吸灯在哪(红米k305g版使用窍门)

  • b站永久封禁的账号还能用吗(b站永久封禁的手机号)

    b站永久封禁的账号还能用吗(b站永久封禁的手机号)

  • 苹果11怎么设置电池(苹果11怎么设置来电闪光灯)

    苹果11怎么设置电池(苹果11怎么设置来电闪光灯)

  • wps表格关键字查找(wps表格怎么查找关键字)

    wps表格关键字查找(wps表格怎么查找关键字)

  • oppoa57有没有按键灯(oppoa57按键怎么设置)

    oppoa57有没有按键灯(oppoa57按键怎么设置)

  • 抖音怎么开直播教程(抖音怎么开直播放电视剧)

    抖音怎么开直播教程(抖音怎么开直播放电视剧)

  • 电话对方未接听啥意思(电话对方未接通要收费吗)

    电话对方未接听啥意思(电话对方未接通要收费吗)

  • 拼多多震动提示怎么关(拼多多一直震动)

    拼多多震动提示怎么关(拼多多一直震动)

  • 海信电视浏览器在哪里(海信电视浏览器在什么地方下载)

    海信电视浏览器在哪里(海信电视浏览器在什么地方下载)

  • 荣耀10电池容量有多大(荣耀10电池容量怎么看损耗)

    荣耀10电池容量有多大(荣耀10电池容量怎么看损耗)

  • pro recorder怎么保存视频(pro recorder怎么保存视频到手机)

    pro recorder怎么保存视频(pro recorder怎么保存视频到手机)

  • 叨叨记账怎么打字聊天(叨叨记账打赏)

    叨叨记账怎么打字聊天(叨叨记账打赏)

  • 新ipad怎么验机(ipad怎么验机手机是否原装)

    新ipad怎么验机(ipad怎么验机手机是否原装)

  • 触宝电话如何注销(触宝电话如何注册账号)

    触宝电话如何注销(触宝电话如何注册账号)

  • Win7系统查看服务的信息的方法(win7怎么看服务)

    Win7系统查看服务的信息的方法(win7怎么看服务)

  • 反射填充详解ReflectionPad2d(padding)(反射dll)

    反射填充详解ReflectionPad2d(padding)(反射dll)

  • 2023小规模纳税人所得税税收优惠政策
  • 我国采用的税率形式有哪几种
  • 工伤在门诊的收据能报销吗
  • 银行收取的账户管理费是什么费用
  • 弃置费用的财务费用可以税前扣除吗
  • 预授权撤销怎么撤销
  • 车辆购置税计税依据包括消费税吗
  • 施工企业挂靠账务处理怎么做
  • 管理费用月末结转总账登记图
  • 商业汇票如何申领
  • 单位房屋出租转投资性房地产怎么转?
  • 对公账户的理财收入计入什么科目
  • 销货清单怎么写才正规
  • 从农民个人手里获取资源
  • 网银 密码器
  • 一般纳税人交增值税会计科目
  • 当月预交增值税时所属期选了上期怎么办
  • 外币资本金使用范围
  • 送现金券活动方案
  • 医药酒精现在要兑水喝吗
  • 外购产品赠送他人合法吗
  • 为什么要开增值税
  • 房屋购买安装电梯可以抵扣吗?
  • 开给学校的发票要税号吗
  • 申报密码遗失怎么重置
  • 总分机构类型怎么选
  • 企业所得税清算报备是什么意思
  • 支付法院执行款的账务处理
  • 归属于母公司的净利润怎么来的?
  • 没有预付账款科目计入哪里
  • 大额转账人行审核通过
  • 电子发票可以开专票吗
  • 企业新增股东
  • 金蝶软件怎么批量审核凭证
  • 在win7系统中,添加打印机驱动程序
  • 发生坏账计入
  • 用产品抵债的合同怎么写
  • Javascript Object和Map之间的转换
  • 增值税专用发票上注明的价款含税吗
  • win10设置待机时间长怎么在哪里设置
  • php接口规则
  • php中文编程
  • php上级目录
  • vue清空input file的值
  • html里面有什么
  • 前端面试常问的项目问题
  • ChatGPT等大模型的模型量化:平滑量化法
  • arp-a命令怎么用
  • get命令获取文件夹
  • 资产减值损失的借贷方向
  • 外账是代理记账吗
  • 机关单位差旅费
  • 速动资产扣除应纳税所得
  • 补缴去年的附加税怎么算
  • 在建工程增多
  • 房地产行业概况
  • 保险再保业务
  • 资产减值准备怎么提
  • 水利建设基金筹集和使用管理办法
  • 餐饮店原材料表格
  • 空头支票如何处罚
  • sqlserver查询重复值
  • winxp系统打不开
  • win8.1如何关闭开机密码
  • ubuntu添加环境变量后黑屏
  • fs是什么文件
  • win7升级win 10
  • python ftps
  • python语言怎么用
  • node.js怎么用
  • 用python写一个程序
  • 推荐javascript教程
  • jquery悬浮显示
  • 北京市平谷区有地铁吗?
  • 税票开户银行怎么填写?
  • 合并方为进行企业合并发生的佣金和手续费怎么处理?
  • 广东省哪里地方考中控证好
  • 小微企业怎么报增值税
  • 公寓土地增值税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设