【问题标题】:Regexp Replace in Oracle not working as expectedOracle 中的正则表达式替换未按预期工作
【发布时间】:2018-06-19 05:51:12
【问题描述】:
  1. 我想从下面的字符串中删除 Bus\. 并想用 Business 替换。我在努力

    SELECT REGEXP_REPLACE('CSP-Junior Associate (Bus\. Analyst equivalent)','Bus\.','Business')
    FROM DUAL
    

    但它不起作用。

  2. 我想从下面的字符串中删除\ 并想用空空间替换。我在努力

    SELECT REGEXP_REPLACE('CSP-Junior Associate (Bus\. Analyst equivalent)','\','')
    FROM DUAL
    

    但它不起作用。

【问题讨论】:

  • 您的第一个查询definitely works。我不知道你在第二个查询中要做什么,但我敢打赌你只是有一个小错字。

标签: oracle regexp-replace


【解决方案1】:

第一个对我有用,第二个在您的示例中缺少反斜杠,但我怀疑您只需要在 REGEXP_REPLACE() '\\' 的第二个参数中转义它:

SELECT REGEXP_REPLACE('CSP-Junior Associate\(Bus. Analyst equivalent)','\\','') FROM DUAL

【讨论】:

    【解决方案2】:

    第一个需要用\\转义,所以试试as

     SELECT REGEXP_REPLACE ('CSP-Junior Associate (Bus\. Analyst equivalent)',
                               'Bus\\.',
                               'Business')
          FROM DUAL
    

    输出

    CSP-Junior Associate (Business Analyst equivalent) 
    

    第二个也是这样

    SELECT REGEXP_REPLACE ('CSP-Junior Associate (Bus\. Analyst equivalent)',
                           '\\',
                           '')
      FROM DUAL
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多