代码之家  ›  专栏  ›  技术社区  ›  Sigularity

如何在Oracle中使用regex\u replace方法在特定字符串上添加字符串

  •  0
  • Sigularity  · 技术社区  · 9 年前

    选择regexp\u replace(输入字符串……)

    CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO")
    

    CREATE UNIQUE INDEX "SCOTT"."PK_EMP_$" ON "SCOTT"."EMP_$" ("EMP_NO")
    

    1 回复  |  直到 7 年前
        1
  •  1
  •   rehael    9 年前

    相当残酷的解决方案将使用以下模式:

    (.*)(" ON ".*)(" \(.*)
    

    使用以下替换字符串:

    \1_$\2_$\3
    

    该模式通过在需要插入 _$ 令牌,然后将其连接回来,将令牌放置在我们分割输入的位置:

    CREATE UNIQUE INDEX "SCOTT"."PK_EMP " ON "SCOTT"."EMP | " ("EMP_NO")

    完整选择查询如下所示:

    SELECT REGEXP_REPLACE(
            'CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO")',
            '(.*)(" ON ".*)(" \(.*)',
            '\1_$\2_$\3'
           ) RX
      FROM dual;