代码之家  ›  专栏  ›  技术社区  ›  Rasool Ghafari

如何替换字符串中的值,但Oracle中特定值的最后一次出现除外

  •  1
  • Rasool Ghafari  · 技术社区  · 6 年前

    假设我有这个列值:

    new operational goods123 type 1 for main goods type 9

    我想得到最后一次出现后的数字值 类型 单词替换并使用正则表达式。 在这种情况下,我想找到 . 我认为正则表达式可能是这样的:

    select REGEXP_REPLACE((SELECT REGEXP_REPLACE(' new operational goods123 type 1 for main goods type 2 ',
                                                '[^(type)[:digit:]]',
                                                ' ')
                            FROM dual),
                          '[^[:digit:]]')
      from dual;
    

    但这个查询返回 一万二千三百一十九 .

    2 回复  |  直到 6 年前
        1
  •  2
  •   Wiktor Stribiżew    6 年前

    enter image description here

    online demo

    • .* n
    • type
    • \s*
    • ([0-9]+)

    \1

    1

        2
  •  1
  •   Gaj    6 年前

    select substr('new operational goods123 type 1 for main goods type 9', instr('new operational goods123 type 1 for main goods type 9', 'type', -1)+ 5) from dual