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

  • 京东白条可以关闭吗(京东白条可以关闭吗 在哪关)

    京东白条可以关闭吗(京东白条可以关闭吗 在哪关)

  • win10如何退出安全模式(win10如何退出安全模式下重启)

    win10如何退出安全模式(win10如何退出安全模式下重启)

  • 红米10xpro机身是玻璃吗(红米10xpro材质)

    红米10xpro机身是玻璃吗(红米10xpro材质)

  • 苹果手机听觉当前线路不可用什么意思啊(苹果手机里听觉是干嘛用的?)

    苹果手机听觉当前线路不可用什么意思啊(苹果手机里听觉是干嘛用的?)

  • 微信读书加载不出来(微信读书加载不了怎么办)

    微信读书加载不出来(微信读书加载不了怎么办)

  • 芝麻粒可以送给别人吗(芝麻粒可以送给别人修复吗)

    芝麻粒可以送给别人吗(芝麻粒可以送给别人修复吗)

  • soul搜索功能用不了(soul 搜索)

    soul搜索功能用不了(soul 搜索)

  • 蓝牙音箱AUX什么意思(蓝牙音箱aux接口怎么连接手机)

    蓝牙音箱AUX什么意思(蓝牙音箱aux接口怎么连接手机)

  • 华为手机mmi完成是什么意思(华为手机mmi完成会对有影响?)

    华为手机mmi完成是什么意思(华为手机mmi完成会对有影响?)

  • eva-al10什么型号(eva_al10多少钱)

    eva-al10什么型号(eva_al10多少钱)

  • 爱奇艺怎么观看cctv直播(爱奇艺怎么观看中央一台)

    爱奇艺怎么观看cctv直播(爱奇艺怎么观看中央一台)

  • 应用安装权限被禁止怎么才能打开(安装应用权限受限)

    应用安装权限被禁止怎么才能打开(安装应用权限受限)

  • 微信零钱明细能恢复吗(微信零钱明细能查几年)

    微信零钱明细能恢复吗(微信零钱明细能查几年)

  • 微信忙线中是拉黑了吗(微信忙线中是对方挂断了吗)

    微信忙线中是拉黑了吗(微信忙线中是对方挂断了吗)

  • word2007删除分页符(word2003删除分页符)

    word2007删除分页符(word2003删除分页符)

  • vivo手机怎么去除虚电(vivo手机怎么去掉照片水印)

    vivo手机怎么去除虚电(vivo手机怎么去掉照片水印)

  • ios系统怎么清理缓存(怎样清理苹果系统)

    ios系统怎么清理缓存(怎样清理苹果系统)

  • iphone11双卡怎么插(iphone11双卡怎么关闭一张卡)

    iphone11双卡怎么插(iphone11双卡怎么关闭一张卡)

  • 计算机一级excel函数(计算机一级excel操作题视频讲解)

    计算机一级excel函数(计算机一级excel操作题视频讲解)

  • 新手直通车推广技巧(新手直通车推广文案)

    新手直通车推广技巧(新手直通车推广文案)

  • 苹果备忘录怎么画画(苹果备忘录怎么变成黑色)

    苹果备忘录怎么画画(苹果备忘录怎么变成黑色)

  • 手机上怎么看qq年龄(手机上怎么看qq使用的q龄几年了)

    手机上怎么看qq年龄(手机上怎么看qq使用的q龄几年了)

  • 表格上怎么截屏(表格上怎么截屏图片)

    表格上怎么截屏(表格上怎么截屏图片)

  • 步数宝兑换商品什么时候发货(步数宝兑换商品是真的吗)

    步数宝兑换商品什么时候发货(步数宝兑换商品是真的吗)

  • linux管道及重定向详解(linux 管道命令详解)

    linux管道及重定向详解(linux 管道命令详解)

  • emsmta.exe是什么文件的进程 emsmta进程有什么作用(emsm是什么意思)

    emsmta.exe是什么文件的进程 emsmta进程有什么作用(emsm是什么意思)

  • 房地产开发企业资质证书
  • 为什么开发成本资本化
  • 卖出看跌期权的损益图
  • 企业组织结构的形式
  • 企业所得税申报时间
  • 违约金并用
  • 农行公户怎么给公户转账
  • 废旧物资回收经营范围
  • 电子承兑汇票接收和转出步骤
  • 集团公司收到的发票
  • 事业单位跨年度错账调整
  • 按月预提短期借款利息
  • 商品已发出未开票未收款怎么做账
  • 固定资产作为实收资本报废怎么处理
  • 年终奖专项扣除
  • 四川中级会计报名需要上传哪些资料
  • 小规模企业记账流程
  • 政府补助计量的基础是
  • 企业并购特殊性税务处理
  • 采购物资发生什么费用
  • 投标保证金怎么退还流程
  • elementui ts
  • 黄金期货交易进场规则
  • 南奥索峰的Lac d'Ayous小屋,法国 (© Eneko Aldaz/Offset by Shutterstock)
  • vue set-cookie
  • 存放同业属于什么会计制度
  • zen框架
  • 小规模纳税人季报需要报什么
  • 文件不小心删除了怎么恢复
  • 使用uni-app开发网站
  • js防抖函数和节流函数
  • 六款小巧的HTTP Server[C语言] 贵贵的博客 开发|架构|开源|共享
  • 包装费和售后服务的区别
  • 个体工商户注册资本是多少
  • 个人给境外公司付款
  • 购入固定资产怎么做账务处理
  • 在建工程转固定资产的账务处理
  • 工资薪金所得适用的税率是
  • 验证vip
  • 企业税预缴在哪里
  • 来料加工成本是多少
  • 软件开发服务费计入什么科目
  • 母子公司间固定资产交换
  • 房产租赁发票
  • 销售费用的会计科目
  • 上年多计提的费用,今年如何记账
  • 失业保险稳岗返还计入什么科目
  • 资产负债表税务局能看到吗
  • 水利建设基金一直没缴纳
  • 新政府会计制度固定资产核算
  • 汇兑损益的税务处理
  • 高新企业研发项目规定几个
  • 小企业建账选哪种会计制度
  • 什么样的原始凭证不能用
  • mac mysql初始密码
  • mysql实时监控工具
  • 活动目录管理工具
  • win7系统鼠标右键无法弹出菜单
  • win8启用或关闭windows功能
  • win10专业版注册表在哪里
  • win7文件访问被拒绝怎么办
  • ,linux
  • python计算ndvi
  • [置顶]游戏名 TentacleLocker
  • 请问在javascript程序中
  • 用git打更新包的代码
  • shell 批量执行命令
  • java guns框架
  • 用python怎么写字
  • unity shader lod
  • bootstrap css框架
  • document.write与writeln的输出内容区别说明
  • js添加一个div
  • python能不能开发微信小程序
  • 纳税申报模拟
  • 上海中考规定
  • 甘肃省国家税务局电子税务局
  • 平安车险如何开票报销
  • 准予扣除是什么意思
  • ca证书怎么删除
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设