如何使用regexp在Oracle中使用匹配字符串拆分字符串?

用户名

目前,我有这个,但它正在返回null

select  regexp_substr(  'abcx1bcdx2mno',  '[^x[[:digit:]]]+', 1,1 ) from dual;
select  regexp_substr(  'abcx1bcdx2mno',  '[^x[[:digit:]]]+', 1,1 ) from dual;

我想要这样一种方式,第一个查询返回abc,第二个查询返回bcd

尼克·克拉斯诺夫(Nick Krasnov)

不幸的是,我们不能否定一组字符(搜索字符串)。作为一种解决方法,我们可以将搜索字符串替换为单个字符(例如空格),然后取反一个字符:

这是一个简单的示例:

with t1(col) aS(
  select 'abcx1bcdx2mno' from dual
)
select regexp_substr( regexp_replace(col, 'x[[:digit:]]', ' '), '[^ ]+'
                     , 1, level) as res
  from t1
connect by level <= regexp_count( regexp_replace(col, 'x[[:digit:]]', ' ')
                                 , '[^ ]+')

注意regexp_count()oracle 11g版本中引入了正则表达式函数。

结果:

RES         
-------------
abc           
bcd           
mno    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在R中使用regexp进行精确的字符串匹配

JS 在字符串拆分中使用 OR

如何使用分隔字符串“#|#”拆分字符串

如何在JavaScript中使用regexp替换字符串

如何在Python中使用递归拆分字符串?

如何使用javascript拆分字符串

Java中的拆分字符串,字符串部分中使用了潜在的拆分字符

仅当regexp匹配整个字符串(无子字符串)时,如何使用JS regexp匹配字符串

如何在字符串匹配中使用通配符

在 Oracle 中使用 regexp_like 使用一系列值匹配多个字符串条件

使用regexp_substr拆分名称字符串

如何匹配 URL 中的字符串并使用 JavaScript 从匹配字符串的索引中拆分 URL?

如何使用regexp_split_to_array使用最后出现的'-'将字符串拆分为数组。

如何在字符串中使用\?

如何使用RegExp在QT中匹配字符后面的字符串?

如何使用拆分器在 JavaScript 中拆分字符串?

如何使用拆分功能在“ \”之间拆分字符串?

在Matlab中使用regexp验证并剪切字符串

在纯bash中使用regexp提取子字符串

在bash中使用regexp获取字符串的子字符串

使用 Oracle 的字符串的子字符串(SUBSTRING 或 REGEXP_SUBSTR)

如何在C#中使用linq在以“ <input”开头的字符串中拆分字符串

如何在不保留捕获组的情况下使用regexp拆分字符串?

在Lua中使用string.gmatch()拆分字符串

在JAVA中使用分号标记拆分字符串

在R中使用通配符拆分或替换字符串

在 Python 中使用空值拆分字符串

如何使用多个字符的字符串在PowerShell中“拆分”字符串?

如何在android中使用特殊字符获取拆分字符串?