首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle sql中使用regex

在Oracle sql中使用regex
EN

Stack Overflow用户
提问于 2021-12-14 09:45:57
回答 1查看 853关注 0票数 0

我想提取某些字符串的两个部分。为此,我想使用正则表达式。例如,字符串是: Big_Dog_0044_0080,my是: Big_Dog_(0-9+)_?(0-9A-Z*) Group 1将是0044,第二个是0080。

现在,我的问题是将其转化为select语句:我尝试了使用regex_substr。

这是我的结果:

代码语言:javascript
复制
 select 
'Big_Dog_0044_0080' as TestString,
regexp_substr('Big_Dog_0044_0080', '([0-9]+)') Group1 , 
regexp_substr('Big_Dog_0044_0080', '([0-9A-Z]*)') Group2 from dual;

我的产出:

代码语言:javascript
复制
TESTSTRING         Group1 Group2
Big_Dog_0044_0080   0044    B

首先,第二组是错的,我期望0080。我在这里做错了什么?

第二个问题,还有其他解决办法吗?我想用5-6种不同的regexp。例如,下一个将是(A)_CatWeezle

我的意思是,选择输入字符串列并遍历可能的regexp。如果一个regexp匹配,则停止并提取值。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-12-14 10:02:28

问题的第一部分很简单:

代码语言:javascript
复制
SQL> SELECT 'Big_Dog_0044_0080' AS TestString,
  2         REGEXP_SUBSTR ('Big_Dog_0044_0080', '\d+', 1, 1) Group1,
  3         REGEXP_SUBSTR ('Big_Dog_0044_0080', '\d+', 1, 2) Group2
  4    FROM DUAL;

TESTSTRING        GROU GROU
----------------- ---- ----
Big_Dog_0044_0080 0044 0080

SQL>

我不太明白你所说的CatWeezle是什么意思。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70346797

复制
相关文章

相似问题

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