首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle 11g通过正则表达式获得用户定义的匹配事件

Oracle 11g通过正则表达式获得用户定义的匹配事件
EN

Stack Overflow用户
提问于 2018-02-08 08:39:21
回答 1查看 29关注 0票数 0

我使用的是Oracle11g,我希望使用REGEXP_SUBSTR来匹配给定模式的所有事件。例如

代码语言:javascript
复制
 SELECT REGEXP_SUBSTR('  -> BSC Area-101202006A, BTS-101300014A, TRX-10; 
 Status = ADD IN ATOLL','([0-9]+\b?){1,}') "GSM" FROM dual

上面提到的查询只返回第一个匹配项101202006,但是我想返回从字符串'101202006A‘和'101300014A’搜索和匹配'30‘的其他事件,并匹配9个字符的正则表达式和模式,并且应该返回101300014。

EN

回答 1

Stack Overflow用户

发布于 2018-02-08 13:29:48

REGEXP_SUBSTR返回一个值。您可以使用CONNECT BY LEVEL查找所有匹配项,然后根据需要使用like筛选行。

代码语言:javascript
复制
WITH t (pat)
     AS (SELECT '  -> BSC Area-101202006A, BTS-101300014A, TRX-10; 
 Status = ADD IN ATOLL'
           FROM DUAL)
SELECT *
  FROM (    SELECT REGEXP_SUBSTR (pat,
                                  '([0-9]+\b?){1,}',
                                  1,
                                  LEVEL)
                      AS "GSM"
              FROM t
        CONNECT BY LEVEL <= REGEXP_COUNT (pat, '([0-9]+\b?){1,}'))
 WHERE GSM LIKE '%30%' AND LENGTH(GSM) = 9

REXTESTER DEMO

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

https://stackoverflow.com/questions/48681038

复制
相关文章

相似问题

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