首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串中数字集的正则表达式

字符串中数字集的正则表达式
EN

Stack Overflow用户
提问于 2020-08-07 17:45:01
回答 2查看 69关注 0票数 1

我在雪花中工作,需要从查询中的字符串中提取两组数字。

代码语言:javascript
复制
"purchase_id:12345678 charge_id:987654321"

我需要在各自的列中分别提取12345678987654321的每一组数字。到目前为止我有

代码语言:javascript
复制
REGEXP_REPLACE("purchase_id:12345678 charge_id:987654321", '[^[:digit:]]', ' '),

返回12345678 987654321。我几乎没有使用regex的经验,所以一直在努力寻找解决方案,并将它们应用到我的具体案例中(或者知道我是否在正确的解决方案路径上)。

这两组数字也有不同的长度(每组7-9位数).

如果需要更多的信息,请告诉我,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-07 18:53:05

试试看:

代码语言:javascript
复制
select
REGEXP_SUBSTR('purchase_id:123456 charge_id:987654321', '\\d+', 1, 1) as purchase_id,
REGEXP_SUBSTR('purchase_id:123456 charge_id:987654321', '\\d+', 1, 2) as charge_id
from dual
票数 2
EN

Stack Overflow用户

发布于 2020-08-07 18:50:46

看看这是否有效:

代码语言:javascript
复制
select col
       ,SPLIT_PART(REGEXP_SUBSTR(col, 'purchase_id:[0-9]*'),':','2') as purchase_id
       ,SPLIT_PART(REGEXP_SUBSTR(col, 'charge_id:[0-9]*'),':','2') as purchase_id
from (select 'purchase_id:12345678 charge_id:987654321' as col ) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63306837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档