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

  • word自选图形在哪(自选图形在哪 word2010)

    word自选图形在哪(自选图形在哪 word2010)

  • 华为荣耀9x有录屏功能吗(华为荣耀9x录音功能在哪)

    华为荣耀9x有录屏功能吗(华为荣耀9x录音功能在哪)

  • 菜鸟裹裹寄件损坏怎么理赔(菜鸟裹裹寄件损坏卖家拒收)

    菜鸟裹裹寄件损坏怎么理赔(菜鸟裹裹寄件损坏卖家拒收)

  • 苹果手机wlan在哪里(苹果手机wlan开关在哪里)

    苹果手机wlan在哪里(苹果手机wlan开关在哪里)

  • 华为手环4pro充电没反应(华为手环4pro充电器图片)

    华为手环4pro充电没反应(华为手环4pro充电器图片)

  • 苹果手机莫名重启了(苹果手机莫名重启的原因)

    苹果手机莫名重启了(苹果手机莫名重启的原因)

  • edi是什么之间的数据传输(什么是edi,它有哪些特点?)

    edi是什么之间的数据传输(什么是edi,它有哪些特点?)

  • oppoa92s指纹在哪(oppoa92s手机指纹不能用了怎么办)

    oppoa92s指纹在哪(oppoa92s手机指纹不能用了怎么办)

  • 抖音一次性可以取关多少人(抖音一次性可以全部隐藏吗)

    抖音一次性可以取关多少人(抖音一次性可以全部隐藏吗)

  • 快手直播降权几大特点(快手直播降权几次会封号)

    快手直播降权几大特点(快手直播降权几次会封号)

  • iphone9有plus吗(有没有苹果9plus)

    iphone9有plus吗(有没有苹果9plus)

  • realmeq屏幕灵敏吗(realme屏幕灵敏度)

    realmeq屏幕灵敏吗(realme屏幕灵敏度)

  • 手机迅雷还有附近的功能吗(手机迅雷附近功能在哪里)

    手机迅雷还有附近的功能吗(手机迅雷附近功能在哪里)

  • 数据压缩的目的是什么(数据压缩的目的是尽可能消除数据中的冗余)

    数据压缩的目的是什么(数据压缩的目的是尽可能消除数据中的冗余)

  • 刚买的苹果11有膜吗(刚买的苹果11有充电器吗)

    刚买的苹果11有膜吗(刚买的苹果11有充电器吗)

  • 微信没有网络是怎么回事(微信被禁止使用wifi怎么解除)

    微信没有网络是怎么回事(微信被禁止使用wifi怎么解除)

  • 华为手机怎么设置省电(华为手机怎么设置来电铃声)

    华为手机怎么设置省电(华为手机怎么设置来电铃声)

  • 小米ai音响用关机吗(小米ai音响要一直插电吗)

    小米ai音响用关机吗(小米ai音响要一直插电吗)

  • 荣耀20有面部解锁么(荣耀20有没有人脸识别解锁)

    荣耀20有面部解锁么(荣耀20有没有人脸识别解锁)

  • 宽带调制器在哪里重置(宽带调制调节器在哪)

    宽带调制器在哪里重置(宽带调制调节器在哪)

  • 青轴声音大吗(青轴声音大吗还是红轴)

    青轴声音大吗(青轴声音大吗还是红轴)

  • 手机淘宝授权怎么取消(手机淘宝授权在哪里)

    手机淘宝授权怎么取消(手机淘宝授权在哪里)

  • 快手缓存的视频在哪里(快手缓存的视频怎么找)

    快手缓存的视频在哪里(快手缓存的视频怎么找)

  •  斗鱼tv怎样查找房间(在斗鱼怎么看直播)

    斗鱼tv怎样查找房间(在斗鱼怎么看直播)

  • AI:人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略(《ai人工智能》)

    AI:人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略(《ai人工智能》)

  • 11-ElementUI

    11-ElementUI

  • 注会与税务师有什么区别
  • 税控盘是什么干嘛的
  • 物业公司车位出租能开具什么发票
  • 增值税小规模纳税人
  • 上市公司收购其他公司要多久
  • 企业减免税享受什么
  • 拍卖公司都要交前期费用吗?
  • 工程结算账务处理实例
  • 债券投资的风险主要有
  • 结转税金需要附件吗
  • 纳税调整税收金额
  • 股权转让是把公司卖了吗
  • 购入固定资产挂帐记其他应付款还是应付账款
  • 工业混合销售行为如何纳税?
  • 企业会主动对税吗
  • 服务外包合同印花税
  • 所得税不能税前扣除项目
  • 加工产品不一定有合理损耗
  • 2018年工资薪金个税起征点
  • 取得运输单位开具的普通发票
  • 印花税零申报怎么申报不了
  • 财付通转款会计分录
  • 什么是应收
  • 电子发票如何作废冲红
  • 生育津贴的相关法律规定
  • 报销单据粘贴单样本
  • 物流公司的财务能学到东西吗
  • 从租计征房产税怎么申报
  • 企业增值税征收范围包括
  • 固定资产净值与原值的区别
  • 酒店开业请吃饭敬酒怎么说
  • wind10记事本在哪
  • 发票是自己买的吗
  • 寿命最短的苹果手机
  • 贷款核销对个人的影响
  • 培训费收入交什么税
  • 淘宝api接口
  • js正则表达式删除特定字符
  • nodejs安装与配置
  • Vision Transformer 模型详解
  • CodeIgniter连贯操作的底层原理分析
  • 捷税宝被稽查了吗
  • 物业公司收的水费是计入其他应付款还是其他业务收入
  • 现金流量表中有应收账款吗
  • 帝国cms配置数据库
  • 电子发票的缺点
  • 本年度的进项可以结转到下一年度吗
  • sqlserver查询时报00bop错误
  • PostgreSQL教程(十二):角色和权限管理介绍
  • mysql数据库环境
  • 外企可以申请高新技术
  • 确认委托代销手续费的会计分录
  • 工业用地便宜
  • 如何计提材料跌价准备
  • 受疫情影响较大的上市公司
  • 收到加盟费应该怎么做账
  • 企业汇算清缴需要提供什么资料
  • 进项税转出税额
  • 招待客人的住宿叫什么
  • windows xp和windows 2000
  • mac怎么有线投屏到电视
  • vc++6.0运行程序
  • Win8.1如何能将任意文件隐藏到普通图片中例如JPG图片
  • WinXP创建一键静音快捷键(在喇叭消失的情况下实用)
  • pavprot.exe - pavprot是什么进程 作用是什么
  • 同步数据和异步数据的区别
  • shell脚本tr
  • 批处理/d
  • python构造方法的参数
  • perl怎么用
  • EGL简介
  • linux修改目录路径
  • ASP小贴士/ASP Tips javascript tips可以当桌面
  • animate如何拖动图片
  • android 桌面开发
  • 科技型中小企业认定有效期
  • 2020年保安证取消了吗
  • 个人账户手机银行如何对公转账
  • 电子税务局里怎么删除购票员
  • 山西税务体检医院
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设