文档章节

Oracle正则表达式函数

s
 sunhan1225
发布于 09/17 14:32
字数 532
阅读 22
收藏 0

Oracle支持正则表达式函数举例。

Regexp_substr:用来提取一个字符串的一部分。

Regexp_substr('first filed, second filed, thirdfiled', [^,]*,')

Pattern为', [^,]*,'表示以,开始逗号,中间空一个格,连续0或多个非逗号字符,最后还是逗号,这样,返回则为', second filed,'。

-------------------------------------------------------------------------------

Regexp_instr:用来pattern的起始位置。

如有一组地址,返回邮编的位置

regexp_instr('Jone Smith,10045 Berry Lane,SanJoseph,CA

91234-1234','[[:digit:]]{5}([-[[:digit:]]{4}])?$')

显然结果位置是91234-1234对应的起始位置。

-------------------------------------------------------------------------------

Regexp_replace:用来将pattern替换成需要替换的字符串,相比传统的replace函数,该函数相比较灵活。例如:

'Jone   smith'中有三个空格,而'Jone  smith'有2个空格,要将中间的空格改为一个空格,使用replace就要使用2次,而是用正则表达式,我们就就可以将pattern设计为

'( ){2,}'这样

regexp_replace(mc,'( ){2,}',' ')

-------------------------------------------------------------------------------

regexp_like是增强版的like,可以包含_和%通配符,使用在where条件中。

正则表达式特性---后向引用

通过将自表达式匹配的内容缓存到缓冲区中,从左相右进行编号,以/digit(digit为1-9)。而子表达式用圆括号表示。

1.在regexp_replace中应用:

将字符串'aa bb cc'反写成'cc bb aa'则可以设计如下:

regexp_replace('aa bbcc','(.*) (.*) (.*)','\3 \2 \1')

(.*)则表示任何一个字符串组合,三个这样的组合用空格隔开,与源字符串吻合,\1,\2,\3则分别存储了三个字表达式的值,这样我们就可以使用这个达到目的。

2.在regexp_substr中应用:

查找被空格隔开的重复字母数字值

regexp_substr('the finaltest is is the implention',([[:alnum:]]+)([[:space:]]+)\1')

返回结果为is is 。([[:alnum:]]+)([[:space:]]+)返回很多字符串,但是增加一个\1就表示连续返回两个同样字符串,这样就把重复的串给找出来。

© 著作权归作者所有

s
粉丝 2
博文 16
码字总数 14829
作品 0
无锡
私信 提问
Oracle 查询不区分大小写 (正则函数)

//不区分大小写查询REGEXPLIKE(字段名, '(" + keyword+ ")', 'i') " ); Oracle中的Like操作符使用''和'%'作为通配符,使用就像这样: SELECT name FROM testlike WHERE name like 'a%'; 即匹......

-wangming-
2016/04/18
454
0
使用正规表达式编写更好的SQL

Oracle Database 10g 中的正规表达式特性是一个用于处理文本数据的强大工具   Oracle Database 10g 的一个新特性大大提高了您搜索和处理字符数据的能力。这个特性就是正规表达式,是一种用...

余二五
2017/11/08
0
0
Hive使用regexp,RLIKE需要使用转义字符

使用Hive做数据清洗,经常需要使用正则表达式。 比较讨厌的是,正则表达式匹配失败的时候,hive完全不会报错。 原来的写法 SELECT * from ahhs_product_info where product_name NOT RLIKE '...

吐槽的达达仔
2014/12/05
377
0
ORACLE中的支持正则表达式的函数

ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 4,REGEXP_REPLACE :与...

滩头沙
2011/09/18
74
0
Oracle中REGEXP_SUBSTR函数

Oracle中REGEXPSUBSTR函数 Oracle中REGEXPSUBSTR函数的使用说明: 题目如下: 在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合。 REGEXPSUBSTR函数格式如下: functi......

买个ZIPPO点蚊香
2015/12/11
46
0

没有更多内容

加载失败,请刷新页面

加载更多

总结:ElasticSearch查询

环境:ES2.3.2 地址:xxx:9200 注意动词使用:GET,POST,PUT,DELETE ElasticSearch PK Mysql 我的告警页面,查询条件会status='OK',isalarm=1,时间范围在:2019-03-01 13:45:41 到 2019......

浮躁的码农
14分钟前
3
0
简单的Cloud Toolkit教程,助你秒部署应用程序

1.什么是Cloud Toolkit Cloud Toolkit 是开发者本地 IDE 中的一款插件,可以帮助开发者更高效地开发、测试、诊断并部署应用。通过这个插件,可以==将本地应用一键部署到任意服务器==,甚至部...

small-bug
19分钟前
7
0
Linux系统产生随机数方法

系统环境变量($RANDOM) 范围:0~32767 加密:md5sum 加盐:stu echo $RANDOM echo $RANDOM |md5sum echo "stu$RANDOM" |md5sum |cut -c 8-15 openssl openssl rand -base64 8 时间......

Mustbecool
22分钟前
1
0
【2019年8月】OCP 071认证考试最新版本的考试原题-第14题

Choose two. Examine this SQL statement: UPDATE orders o SET customer_name = (SELECT cust_last_name FROM customers WHERE customer_id=o.customer_id); Which two are true? A) The su......

oschina_5359
30分钟前
2
0
功能测试与非功能测试

根据一份报告,应用程序崩溃导致71%的卸载。迫使用户卸载应用程序的其他原因是页面响应时间,混乱的UI,电池消耗等。这表明功能测试和非功能测试对于交付用户友好型应用程序的重要性。因此,...

八音弦
31分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部