从字符串中 ,提取所有的电话号码,通过“,”分割,求正则表达式

五哥 2015-02-10 04:58:27



在ORACLE中,通过正则 :
select regexp_replace(telNUM,'((.*?)(1[3|5|7|8|][0-9]{9}))','\3,') from TELNUMBER;

得到的结果是 :
aa130123456789bbb --》13012345678,9bbb
aa130123456789bbb15800000000131999999999 --》13012345678,15800000000,133999999999,


实际需要的结果:
aa130123456789bbb --》13012345678,
aa130123456789bbb15800000000131999999999 --》13012345678,15800000000,133999999999,

求正则表达式?
谢谢
...全文
977 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
五哥 2015-05-25
  • 打赏
  • 举报
回复
不好意思,忘了结贴了
liangtu 2015-02-11
  • 打赏
  • 举报
回复
1、查询 2、写java代码进行字符串处理
bw555 2015-02-11
  • 打赏
  • 举报
回复
先拆分提取,然后再合并
with T AS(
select ROWID ID,REGEXP_SUBSTR(A, '1[3|5|7|8|][0-9]{9}', 1, LEVEL)  A
from TABLE1
CONNECT BY LEVEL <= REGEXP_COUNT(A, '1[3|5|7|8|][0-9]{9}')
and rowid= prior rowid
and prior dbms_random.value is not null;
)
SELECT WMSYS.WM_CONCAT(A)
FROM T
GROUP BY ID

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧