【问题标题】:Regexp Replace in Oracle not working as expectedOracle 中的正则表达式替换未按预期工作
【发布时间】:2018-06-19 05:51:12
【问题描述】:
-
我想从下面的字符串中删除 Bus\. 并想用 Business 替换。我在努力
SELECT REGEXP_REPLACE('CSP-Junior Associate (Bus\. Analyst equivalent)','Bus\.','Business')
FROM DUAL
但它不起作用。
-
我想从下面的字符串中删除\ 并想用空空间替换。我在努力
SELECT REGEXP_REPLACE('CSP-Junior Associate (Bus\. Analyst equivalent)','\','')
FROM DUAL
但它不起作用。
【问题讨论】:
标签:
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