当前位置: 首页 > news >正文

07_oracle正则表达式语法

1.ORACLE中的支持正则表达式的函数主要有下面四个:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_INSTR :与INSTR的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。POSIX 正则表达式由标准的元字符(metacharacters)所构成。

2.oracle正则表达式中常用到的元字符(metacharacters)如下:
^ 匹配字符串的开头位置,在方括号中应用。
$ 匹配字符串的结尾位置。
*匹配该字符前面的一个字符0次,1次或者多次出现。
+匹配该字符前面的一个字符1次或者多次出现。
? 匹配该字符前面的一个字符0次或1次或者多次出现。
{n}匹配一个字符串n次,n为正整数。例如:hel{2}o所匹配的是hello
{n,m}匹配一个字符串至少n次,至多m次。其中n和m都是整数。
. 匹配除了null之外的任何单个字符串
(pattern)这个是用来匹配指定模式的一个子表达式
x|y 匹配x或者y,其中x和y是一个或者多个字符
[abc]匹配括号中的任意一个字符。例如:[ab]bc可以匹配abc和bbc
[a-z]匹配指定范围内的任意字符串。例如[A-G]hi可以匹配Ahi至Ghi

[::]指定一个字符类,可以匹配该类中的任意字符 这里的字符类包括:
[:alphanum:]可以匹配字符0-9、A-Z、a-z
[:alpha:]可以匹配字符A-Z、a-z
[:blank:]可以匹配空格或者tab键
[:digit:]可以匹配数字0-9
[:gragh:]可以匹配非空字符
[:punct:]可以匹配. , ” ‘等标点符号。
[:upper:]可以匹配字符A-Z
[:lower:]可以匹配字符a-z

3. REGEXP_LIKE函数基本语法
REGEXP_LIKE ( expression, pattern [, match_parameter ] )
参数
expression - 字符表达式,例如列或字段。它可以是VARCHAR2,CHAR,NVARCHAR2,NCHAR,CLOB或NCLOB数据类型。
pattern - 正则表达式匹配信息。它可以是以下的组合:
在这里插入图片描述
在这里插入图片描述

4.REGEXP_INSTR函数基本语法:
REGEXP_INSTR (source_char, pattern [, position [, occurrence [, return_option [, match_parameter ] ] ] ] )
参数
source_char
搜索值的字符表达式,可以是任何数据类型CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB或NCLOB的。
pattern

找到字符串中的第一个”e”字的位置。
SELECT REGEXP_INSTR ('hello itmyhome', 'e') FROM dual;  
-- Result: 2 
下面这个例子给出一个字符串, 
“1”为开始位置 “2”是搜索第二个匹配的,”0”是return_option 返回出现的第一个字符位置
“c”是区分大小写 ,所以将返回13
SELECT REGEXP_INSTR ('my is itMyhome', 'm', 1, 2, 0, 'c') FROM dual; 
-- Result: 13

5.REGEXP_SUBSTR函数基本语法:
regexp_substr(srcstr,pattern[,start[,occurence[match_option]]])
srcstr待匹配的函数
pattern正则表达式元字符构成的匹配模式
start 开始匹配的位置,如果不指定默认为1
occurrence 匹配的次数,如果不指定,默认为1
match_option 匹配参数,‘c’区分大小写(默认选项),‘i’ 不区分大小写
select regexp_substr(‘LC0021’,’^LC[0-9]{4}’ ) value from dual;
select regexp_substr(‘OD0001’,’^LC[0-9]{4}’ ) value from dual;
select regexp_substr(‘Y’,’(N|Y)’ ) value from dual;
6.REGEXP_REPLACE函数基本语法:
在这里插入图片描述

相关文章:

  • 测试比json更快更小的二进制数据传输格式Msgpack [pythono MessagePack 版本]
  • 01_excel基础知识1
  • 学习Trie树,处理“海量”数据
  • hibernate的native sql查询
  • 类的成员变量和属性Fields and Properties in class
  • 一个简单的JavaScript Map
  • Introduction to the Java Persistence API
  • 电脑开机后总是提示对话框:服务器正在运行中
  • hibernate第一天:环境搭建
  • 创建自己的yum源
  • hibernate第二天:hibernate原理
  • LINUX系统监控
  • hibernate第三天:O/R MAPPING常见框架
  • hadoop on nitrous.io
  • java常见日志理解
  • [iOS]Core Data浅析一 -- 启用Core Data
  • android图片蒙层
  • co模块的前端实现
  • ECS应用管理最佳实践
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Facebook AccountKit 接入的坑点
  • java第三方包学习之lombok
  • java取消线程实例
  • MQ框架的比较
  • session共享问题解决方案
  • 从输入URL到页面加载发生了什么
  • 高程读书笔记 第六章 面向对象程序设计
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前言-如何学习区块链
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数组大概知多少
  • 学习HTTP相关知识笔记
  • 再次简单明了总结flex布局,一看就懂...
  • nb
  • 阿里云重庆大学大数据训练营落地分享
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #if和#ifdef区别
  • #Linux(权限管理)
  • #预处理和函数的对比以及条件编译
  • (10)STL算法之搜索(二) 二分查找
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (26)4.7 字符函数和字符串函数
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (力扣)1314.矩阵区域和
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ***详解账号泄露:全球约1亿用户已泄露
  • .net web项目 调用webService
  • :中兴通讯为何成功
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [Android]一个简单使用Handler做Timer的例子
  • [C++]高精度 bign (重载运算符版本)
  • [CSS]文字旁边的竖线以及布局知识
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv