楼主: jiqing1004

[精华] Oracle正则表达式

[复制链接]
论坛徽章:
12
11#
发表于 2010-9-7 08:43 | 只看该作者
SELECT regexp_substr('Republicc Of Africaa', '([a-z])([a-z])+\1', 1, 1, 'i')
FROM dual;

Africaa

SELECT regexp_substr('Republicc Of Africaa', '([a-z])([a-z])+\2', 1, 1, 'i')
FROM dual;

Republicc

使用道具 举报

回复
论坛徽章:
821
授权会员
日期:2007-08-10 01:06:30山治
日期:2019-11-15 22:34:592015年新春福章
日期:2015-03-06 11:57:31暖羊羊
日期:2015-03-04 14:50:37马上有钱
日期:2014-12-21 16:14:33马上加薪
日期:2014-11-23 19:24:42 2014年世界杯参赛球队: 德国
日期:2014-07-09 15:28:06ITPUB元老
日期:2008-08-24 00:06:57会员2007贡献徽章
日期:2007-09-26 18:42:10托尼托尼·乔巴
日期:2020-03-23 10:49:16
12#
发表于 2010-9-7 08:54 | 只看该作者
nice ,这个经常用

使用道具 举报

回复
论坛徽章:
16
2008新春纪念徽章
日期:2008-02-13 12:43:032014年新春福章
日期:2014-02-18 16:43:09雪佛兰
日期:2014-02-16 11:10:31宝马
日期:2013-10-19 21:13:06现代
日期:2013-08-16 09:45:16茶鸡蛋
日期:2013-07-21 11:20:092010广州亚运会纪念徽章:射箭
日期:2013-06-26 17:43:122013年新春福章
日期:2013-02-25 14:51:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:262010年世界杯参赛球队:法国
日期:2010-04-12 08:35:13
13#
发表于 2010-9-7 09:01 | 只看该作者
不错,留名,以备查看

[ 本帖最后由 420350501 于 2010-9-7 09:06 编辑 ]

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
14#
发表于 2010-9-7 09:03 | 只看该作者
本来我也打算写一个,没想到jiqing动作这快
regexp是通用的东西,只是在不同的场合下描述方法不一样
只要掌握其思想,那无论用哪种写法,你都能很快写出来

正则表达式的内容很多,楼主继续努力,争取继续完善到目前篇幅的5倍以上

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
15#
发表于 2010-9-7 09:20 | 只看该作者
http://book.51c to.com/art/201007/212284.htm

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
16#
发表于 2010-9-7 09:25 | 只看该作者
8.6 REGEXP_COUNT

在Oracle 11g 中,可以使用REGEXP_COUNT 函数。REGEXP_COUNT 返回在源串中出现的模式的次数,作为对REGEXP_INSTR 函数的补充。需要注意的是,尽管COUNT 是一个集合函数,它操作的是行组,但REGEXP_COUNT 是一个单行函数,它分别计算每一行。

REGEXP_COUNT 的语法如下所示:

1.REGEXP_COUNT ( source_char, pattern [, position [, match_param]]) REGEXP_COUNT 返回pattern 在source_char 串中出现的次数。如果未找到匹配,则函数返回0。position 变量告诉Oracle 在源串的什么位置开始搜索。在开始位置之后每出现一次模式,都会使计数结果增加1。

match_param 变量支持下面几个值:

‘i’ 用于不区分大小写的匹配

‘c’ 用于区分大小写的匹配

‘n’ 允许句点(.)作为通配符去匹配换行符。如果省略该参数,则句点将不匹配换行符

‘m’ 将源串视为多行。即Oracle 将^和$分别看作源串中任意位置任何行的开始和结束,而不是仅仅看作整个源串的开始或结束。如果省略该参数,则Oracle将源串看作一行。

‘x’ 忽略空格字符。默认情况下,空格字符与自身相匹配。

如果为match_param 指定了多个相互矛盾的值,那么Oracle 使用最后一个值。

可以用REGEXP_COUNT 来修改本章前面的LENGTH 示例。可以将下面的语法

1.select (LENGTH('GEORGE')  2.- LENGTH(REPLACE('GEORGE', 'GE', NULL)) )  3./  4.LENGTH('GE') AS Counter  5.from DUAL;  6.COUNTER  7.-------  8.2 用如下语法来代替,得到的结果是相同的:

1.select REGEXP_COUNT('GEORGE','GE',1,'i')  2.from DUAL; 用REGEXP_COUNT 取代LENGTH 还有一个好处,即可以进行不区分大小写的搜索,因此,前面的查询也可以写成下面这样:

1.select REGEXP_COUNT('GEORGE','ge',1,'i')  2.from DUAL; REGEXP_SUBSTR 、REGEXP_INSTR 、REGEXP_LIKE 、REGEXP_REPLACE 和REGEXP_COUNT 函数的使用只受限于您开发正则表达式的能力,而正则表达式反映了您的需要。正如本章中的示例所示,可以使用这些函数来修改已有数据的显示、查找复杂的模式以及在模式中返回串。

使用道具 举报

回复
论坛徽章:
10000
绿钻
日期:2016-02-22 15:43:08绿钻
日期:2016-03-01 18:19:01绿钻
日期:2016-02-22 15:43:08绿钻
日期:2016-03-01 18:19:01绿钻
日期:2015-12-16 18:42:35绿钻
日期:2015-12-11 00:18:01绿钻
日期:2015-09-10 13:05:08绿钻
日期:2015-12-11 00:18:01绿钻
日期:2015-09-10 13:05:08绿钻
日期:2015-09-10 13:05:08
17#
发表于 2010-9-7 09:37 | 只看该作者
不错不错,顶个

使用道具 举报

回复
论坛徽章:
32
奥运会纪念徽章:摔跤
日期:2012-08-23 11:03:05青年奥林匹克运动会-击剑
日期:2014-09-19 10:58:152014年世界杯参赛球队:巴西
日期:2014-07-07 12:19:232014年世界杯参赛球队: 瑞士
日期:2014-05-19 12:18:36马上有钱
日期:2014-04-08 12:12:232014年新春福章
日期:2014-04-04 14:20:47马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-02-18 16:43:09红旗
日期:2014-02-14 15:15:55优秀写手
日期:2013-12-18 09:29:16
18#
发表于 2010-9-7 09:57 | 只看该作者
好东西,谢谢楼主的总结!

下下来学习一下

使用道具 举报

回复
论坛徽章:
6
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512010广州亚运会纪念徽章:曲棍球
日期:2010-12-06 10:59:282011新春纪念徽章
日期:2011-02-18 11:43:34双黄蛋
日期:2011-07-15 10:33:56灰彻蛋
日期:2011-08-15 16:23:02ITPUB十周年纪念徽章
日期:2011-11-01 16:25:51
19#
发表于 2010-9-7 10:18 | 只看该作者
开发版,第一个正则表达式专题哦,顶下!!学习了~~

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
20#
发表于 2010-9-7 10:41 | 只看该作者
原帖由 cj402444206 于 2010-9-7 10:18 发表
开发版,第一个正则表达式专题哦,顶下!!学习了~~

对,所以给予精华保留,便于查询,希望吉庆多弄些分类的例子,这样就便于查询了,哈哈

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表