查看: 349|回复: 4

怎么用正则表达式regexp_substr截取最后一个字符串

[复制链接]
论坛徽章:
9
2011新春纪念徽章
日期:2011-02-18 11:42:47ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24优秀写手
日期:2013-12-18 09:29:132014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
跳转到指定楼层
1#
发表于 2024-5-14 17:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
字符串 江西可伟资产管理有限公司-可伟资产-同创5号私募证券投资基金

怎么截取返回 同创5号私募证券投资基金  最后一个-分割的字符串了 ?



论坛徽章:
519
奥运会纪念徽章:垒球
日期: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
2#
发表于 2024-5-14 22:33 | 只看该作者
不如用INSTR, 可以带个 -1 做参数表示从右边找起

使用道具 举报

回复
论坛徽章:
18
优秀写手
日期:2014-02-27 06:00:13秀才
日期:2017-12-12 09:52:44秀才
日期:2017-08-11 15:37:32弗兰奇
日期:2017-07-04 09:16:01秀才
日期:2017-06-29 10:16:48乌索普
日期:2017-05-26 08:58:24娜美
日期:2017-05-18 16:07:23ITPUB15周年纪念
日期:2017-05-02 15:22:36妮可·罗宾
日期:2017-04-06 10:06:19处女座
日期:2016-03-10 09:03:26
3#
发表于 2024-5-24 11:25 | 只看该作者
SELECT REGEXP_REPLACE(S, '.*-([^-]+)$', '\1') F,
       REGEXP_SUBSTR(S, '([^-]+)$', 1, 1) AS F1
FROM   (SELECT '江西可伟资产管理有限公司-可伟资产-同创5号私募证券投资基金' AS S
         FROM   DUAL
         UNION ALL
         SELECT '江西可伟资产管理有限公司-可伟资产-可伟资产-同创5号私募证券投资基金' AS S
         FROM   DUAL)

使用道具 举报

回复
论坛徽章:
1
20周年集字徽章-周
日期:2023-08-03 16:37:45
4#
发表于 2024-5-27 09:28 | 只看该作者
提醒一下题主, 基本的礼貌还是要有的.  从性能的角度来看, instr要比regexp要好; 3楼用了两种方法解题, 正则表达式的用法非常熟练, 赞一个!

使用道具 举报

回复
论坛徽章:
519
奥运会纪念徽章:垒球
日期: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
5#
发表于 2024-5-27 23:32 | 只看该作者
chengccy2010 发表于 2024-5-24 11:25
SELECT REGEXP_REPLACE(S, '.*-([^-]+)$', '\1') F,       REGEXP_SUBSTR(S, '([^-]+)$', 1, 1) AS F1FR ...

思路很灵活,加上$做定位就是从尾部找起了。

使用道具 举报

回复

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

本版积分规则 发表回复

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