【问题标题】:Regex values after special character with empty values具有空值的特殊字符后的正则表达式值
【发布时间】:2022-10-14 18:52:27
【问题描述】:

我正在努力使用正则表达式将字符串拆分为 Oracle 数据库中的列。

select (REGEXP_SUBSTR(replace('1:::9999', ' ',''), '[^: ]+', 1, 4)) from dual;

我需要从该字符串中获取第 4 个值作为列值,有时位置 2,3 的值是空的,我的查询不起作用。我试图弄清楚什么正则表达式会起作用

【问题讨论】:

  • 你的...是版本SQL 的?如 MySQL、Oracle 等。

标签: sql regex oracle


【解决方案1】:

您可以使用

select (REGEXP_SUBSTR(replace('1:::9999', ' ',''), '([^: ]*)(:|$)', 1, 4, 'i', 1)) from dual;

在这里,([^: ]*)(:|$) 匹配

  • ([^: ]*) - 第 1 组:除 : 和空格之外的任何零个或多个字符
  • (:|$) - 第 2 组,: 或字符串结尾。

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 2021-09-18
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2011-02-20
    相关资源
    最近更新 更多