oracle 可以用正则么,在Oracle中使用正则表达式
正则表达式是功能强大且实用的字符串操作工具. 您可以使用某些字符及其组合逻辑来执行灵活,强大的搜索,匹配和替换字符串操作. 作为行业的领导者,Oracle对正则表达式提供了更完整的支持.
函数语法
REGEXP_LIKE
REGEXP_LIKE(source_str,pattern,[match_parameter])
REGEXP_SUBSTR
REGEXP_SUBSTR(source_str,pattern,[position],[occurrence],[match_parameter])
REGEXP_INSTR
REGEXP_INSTR(source_str,pattern,[position],[occurrence],[return_option],[match_parameter])
REGEXP_REPLACE
REGEXP_REPLACE(source_str,pattern,replace_str,[position],[occurrence],[match_parameter])
REGEXP_COUNT
REGEXP_COUNT(source_str,pattern正则表达式怎么使用,[position],[match_parameter])
注意: []是可选的
参数含义
source_str
输入字符串可以是列名或字符串常量或变量.
模式
正则表达式.
match_parameter
匹配选项. 值范围: i: 不区分大小写; c: 区分大小写;
n: 点. 与换行符不匹配;
m: 多行模式,使用^和$作为源字符串中任何行的开头和结尾,而不仅仅是整个源字符串的开头或结尾. 如果省略此参数,则将源字符串视为一行.
x: 扩展模式,忽略正则表达式中的空格字符.
位置
确定正则表达式匹配项中的前几个字符,默认值为1
发生
确定匹配组的数量. 默认值为1
replace_str
已替换的字符串,可以使用捕获组(\ ncall,n是第n个捕获组)
return_option
仅适用于regexp_instr正则表达式怎么使用,0: 默认值,返回图案第一个字符出现的位置,1: 图案结束后下一个字符的起始位置
regexp_like: 只能作为条件表达式放置在where后面,类似于like,但是使用正则表达式进行匹配;
regexp_substr和regexp_instr: 分别对应于Oracle的substr和instr,使用正则表达式进行字符选取和定位,更加简单,灵活,强大;
regexp_replace: 常规替换,其中replace_str可以使用捕获组,\ n表单调用
regexp_count: 自11g起新添加的函数,可以计算模式在字符串中出现的次数
字符类
Oracle不使用\ d,\ w,\ s和其他形式来表示字符类,而是采用以下POSIX字符类
[::]指定可以与该类中的任何字符匹配的字符类
[: alpha: ]可以匹配字符A-Z,a-z
[: digit: ]可以匹配数字0-9
[: alphanum: ]可以匹配字符0-9,A-Z,a-z
[: lower: ]可以匹配小写字母a-z
[: upper: ]可以匹配大写字母A-Z
[: space: ]可以匹配所有空字符
[: 空白: ]可以匹配空格或制表符
[: graph: ]可以匹配非空字符
[: print: ]与[: graph: ]相似,除了[: print: ]包含空格字符
[: punct: ]可以匹配标点符号,“”等.
[: xdigit: ]可以匹配十六进制数字0-9,A-F,a-f
应用示例:
regexp_substr
SELECT REGEXP_SUBSTR('http://www.abc_123.com/11/1.html?AD_SOURE=M2017-12-99-11-218','M201[5-9](-[0-9]+){3,4}') AD_SOURE
FROM DUAL;
SELECT REGEXP_SUBSTR('http://www.abc_123.com/11/1.html?AD_SOURE=M2017-12-99-11-218','M201[5-9](-[0-9]+){3,4}','1','1','i') AD_SOURE
FROM DUAL;
SELECT REGEXP_SUBSTR('http://www.abc_123.com/11/1.html?AD_SOURE=m2017-12-99-11-218','M201[5-9](-[[:digit:]]+){3,4}','1','1','i') AD_SOURE
FROM DUAL;
-----
M2017-12-99-11-218
M2017-12-99-11-218
m2017-12-99-11-218
regexp_replace
SELECT REGEXP_REPLACE('13800054321','([[:digit:]]{3})([[:digit:]]{5})([[:digit:]]{3})','\1*****\3') 隐藏手机号
FROM DUAL;
-------
138*****321
SELECT REGEXP_REPLACE('http://www.abc_123.com/11/1.html?AD_SOURE=M2017-12-99-11',
'http://([[:alnum:]_\.]+)/.*',
'\1')
FROM DUAL;
-------
www.abc_123.com
SELECT REGEXP_REPLACE('正序:aa-bb-cc', '正序:(.+)-(.+)-(.+)', '逆序:\3-\2-\1') FROM DUAL;
-------
逆序:cc-bb-aa
请尊重作者的工作,转载时请注明出处: Notes-Qianrong的博客»在Oracle中使用正则表达式
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-247789-1.html
oracle 可以用正则么,在Oracle中使用正则表达式相关推荐
- mysql 正则 java 区别_MySQL中的正则表达式
MySQL中允许使用正则表达式定义字符串的搜索条件,性能比like匹配查询还高 MySQL中的正则表达式可以对整数类型或者字符类型检索 使用REGEXP关键字表示正则匹配,默认忽略大小写,如果区分大小 ...
- html js脚本限制 正则,简单谈谈JS中的正则表达式
1.正则表达式包括两部分 ①定义正则表达式的规则: ②正则表达式的模式(i/g/m): 2.声明正则表达式 ① 字面量声明: var reg = /表达式规则/表达式模式: eg:var reg = ...
- php正则网络图片格式,php中通过正则表达式下载内容中的远程图片的函数代码
这段程序其实是属于"小偷程序"的重要部分. 这一段程序只是下载远程图片的那一段而已,程序写的比较简单,大多部分都做了注释. if (preg_match_all("/ht ...
- js正则贪婪模式_javascript中的正则表达式的贪婪模式和非贪婪模式讲解
1.贪婪模式: 根据匹配字符串以及表达式尽可能多的进行匹配,成为贪婪匹配模式 例如:/a\d+/ 即可以匹配首字母为a的之后的许多数字,这个不进行限制 或者另外一种方法/a\d{2,}/也可以实现同样 ...
- php正则判断qq,JavaScript中的正则表达式使用及验证qq号码的正则
废话不多说了,直接给大家贴正则表达式代码了. function myValid() { var errorMsg = ""; var res = true; //拿到要验证的值. ...
- oracle 正则表达式拆分字符串,oracle中通过正则表达式函数处理逗号分隔的字段...
这个题目的确不大好写,其实际含义基于一个场景: 比如在oracle的某张表中,有两个字段 A1 B1 1 A,B,C,D, 2 E,F 假如现在的需求 ...
- oracle 汉字正则表达式,在Oracle中使用正则表达式
正则表达式是一种强大的实用的字符串操作工具,可以用一定的字符及其组合逻辑进行灵活.强大的查找.匹配.替换等字符串操作.Oracle作为数据库行业执牛耳者,对正则表达式支持比较完善. Oracle正则表 ...
- ESX上ORACLE 10.2RAC(4.在REHAT4.7中安装ORACLE RAC)
四. 安装CRS软件 上传cluster软件到rac1,rac2的/home/oracle目录下 [root@rac1 ~]# cd /home/oracle [root@rac1 oracle]# ...
- oracle外部表ora29913,从外部表中选择sqlplus错误:ORA-29913:执行ODCIEXTTABLEOPEN标注时出错...
我已经建立了一个简单的Oracle外部表测试,我(与DBA和Unix管理员一起)无法工作. 以下内容基于Oracle的External Tables Concepts.我们使用的数据库是11g. 这是 ...
最新文章
- java字典写实例,基于JAVA的新华字典接口调用代码实例
- DataTable.DataRow的复制
- 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
- 如何在Golang中返回错误?
- 前端学习(1575):复习todoMVC
- Python刷题-7
- UESTC 1143 数据传输 网络流 最大流 Dinic
- mysql重启.....
- JSR-303 数据校验学习
- ribbon基于接口配置超时_Spring Cloud第二篇:服务消费者RestTemplate+Ribbon
- sed学习[参考转载]
- 会话推荐和 序列推荐
- 【ArcGIS小技巧视频教程】(3):五分钟搞定地图矢量化
- 【Serenity BDD】Serenity 2.2.0 版本变动说明及相应的配置变动
- 电脑鼠标右键失效linux,鼠标右键失灵,教你win7电脑鼠标右键失灵的应对办法
- Post接口测试示例
- 移远 EC200S 模组(4G Cat.1 通信模组)AT指令测试 TCP/UDP 通信过程
- linux识别不了喇叭,Ubuntu扬声器无声的解决方法
- ElasticSearch 全文搜索引擎
- 计算机理论知识论文,理论知识:计算机科学与技术硕士毕业论文写作方法