查看: 4252|回复: 7

【讨论】请教用正则表达式如何解决

[复制链接]
论坛徽章:
13
奥迪
日期:2013-10-12 11:06:54狮子座
日期:2015-08-08 19:02:44沸羊羊
日期:2015-04-30 16:38:382015年新春福章
日期:2015-03-06 11:58:39慢羊羊
日期:2015-03-04 14:53:33优秀写手
日期:2015-02-12 06:00:14优秀写手
日期:2015-01-28 06:00:13马上有对象
日期:2014-10-29 13:15:17马上有房
日期:2014-10-26 16:16:04问答徽章
日期:2013-10-15 23:55:50
发表于 2014-12-30 22:19 | 显示全部楼层 |阅读模式
比如我现在的数据是:A-B-C-D。但是,我想要的只是:A-B-C 用正则表达式怎么解决?
论坛徽章:
527
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
发表于 2014-12-30 22:23 | 显示全部楼层
你不说清楚规则就有很多种理解方法,比如:
select regexp_substr('A-B-C-D','[^-]+-[^-]+-[^-]+') FROM DUAL;

使用道具 举报

回复
论坛徽章:
13
奥迪
日期:2013-10-12 11:06:54狮子座
日期:2015-08-08 19:02:44沸羊羊
日期:2015-04-30 16:38:382015年新春福章
日期:2015-03-06 11:58:39慢羊羊
日期:2015-03-04 14:53:33优秀写手
日期:2015-02-12 06:00:14优秀写手
日期:2015-01-28 06:00:13马上有对象
日期:2014-10-29 13:15:17马上有房
日期:2014-10-26 16:16:04问答徽章
日期:2013-10-15 23:55:50
 楼主| 发表于 2014-12-30 22:31 | 显示全部楼层
newkid 发表于 2014-12-30 22:23
你不说清楚规则就有很多种理解方法,比如:
select regexp_substr('A-B-C-D','[^-]+-[^-]+-[^-]+') FROM  ...

谢谢newkid大侠。我的数据是:上海-上海市-黄浦区-五里桥街道,但是,我只要:上海-上海市-黄浦区。类似还有:上海-上海市-徐汇区-长桥街道 等等。我希望 在 WHERE 中过滤出来。

使用道具 举报

回复
论坛徽章:
13
奥迪
日期:2013-10-12 11:06:54狮子座
日期:2015-08-08 19:02:44沸羊羊
日期:2015-04-30 16:38:382015年新春福章
日期:2015-03-06 11:58:39慢羊羊
日期:2015-03-04 14:53:33优秀写手
日期:2015-02-12 06:00:14优秀写手
日期:2015-01-28 06:00:13马上有对象
日期:2014-10-29 13:15:17马上有房
日期:2014-10-26 16:16:04问答徽章
日期:2013-10-15 23:55:50
 楼主| 发表于 2014-12-30 22:47 | 显示全部楼层
newkid 发表于 2014-12-30 22:23
你不说清楚规则就有很多种理解方法,比如:
select regexp_substr('A-B-C-D','[^-]+-[^-]+-[^-]+') FROM  ...

问题解决了,谢谢

使用道具 举报

回复
招聘 : 系统分析师
论坛徽章:
483
马上有钱
日期:2014-02-19 11:55:14itpub13周年纪念徽章
日期:2014-09-29 01:14:14itpub13周年纪念徽章
日期:2014-10-08 15:15:25itpub13周年纪念徽章
日期:2014-10-08 15:15:25马上有对象
日期:2014-10-12 11:58:40马上有车
日期:2014-11-16 17:11:29慢羊羊
日期:2015-02-09 17:04:38沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31ITPUB年度最佳版主
日期:2015-03-18 15:48:48
发表于 2014-12-31 10:08 | 显示全部楼层
instr+substr就行了,不必要上正则

使用道具 举报

回复
认证徽章
论坛徽章:
8
宝马
日期:2013-12-30 15:12:362014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08青年奥林匹克运动会-击剑
日期:2014-08-26 08:46:14马上加薪
日期:2014-12-15 14:55:28马上加薪
日期:2015-01-30 09:13:41美羊羊
日期:2015-03-19 15:04:19水瓶座
日期:2016-01-28 10:23:13
发表于 2014-12-31 10:13 | 显示全部楼层
本帖最后由 li0924 于 2014-12-31 10:41 编辑
  1. SELECT regexp_replace('A-B-C-D','(.*)-(.*)','\1') FROM dual;
复制代码

使用道具 举报

回复
论坛徽章:
13
奥迪
日期:2013-10-12 11:06:54狮子座
日期:2015-08-08 19:02:44沸羊羊
日期:2015-04-30 16:38:382015年新春福章
日期:2015-03-06 11:58:39慢羊羊
日期:2015-03-04 14:53:33优秀写手
日期:2015-02-12 06:00:14优秀写手
日期:2015-01-28 06:00:13马上有对象
日期:2014-10-29 13:15:17马上有房
日期:2014-10-26 16:16:04问答徽章
日期:2013-10-15 23:55:50
 楼主| 发表于 2014-12-31 17:59 | 显示全部楼层
lastwinner 发表于 2014-12-31 10:08
instr+substr就行了,不必要上正则

嗯,自己写了下,也行!

使用道具 举报

回复
认证徽章
论坛徽章:
1
优秀写手
日期:2014-12-06 06:00:14
发表于 2015-1-7 13:47 | 显示全部楼层
SELECT regexp_substr('A-B-C-D','^.-.-.') FROM dual;

使用道具 举报

回复

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

本版积分规则 发表回复

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