我的查询未按预期运行:
SELECT REGEXP_REPLACE('This is testing data SIL(TM)T for once ',
'SIL(TM)T', 'SIL<REFERENCE ID="8208" TYPE="trademark"/>T')as
Newdescriptiontext from dual
输出应该是:
This is testing data SIL<REFERENCE ID="8208" TYPE="trademark"/>T for once
情况并非如此。需要指导。
答案 0 :(得分:1)
尝试替换而不是regexp_replace
SELECT REPLACE('This is testing data SIL(TM)T for once ',
'SIL(TM)T', 'SIL<REFERENCE ID="8208" TYPE="trademark"/>T')as
Newdescriptiontext from dual;
答案 1 :(得分:1)
你只需要逃避括号:
SELECT REGEXP_REPLACE('This is testing data SIL(TM)T for once ',
'SIL\(TM\)T', 'SIL<REFERENCE ID="8208" TYPE="trademark"/>T')as Newdescriptiontext
from dual
在正则表达式中,它们用于分隔“子表达式”,因此'(TM)'
匹配'TM'
;如果你逃避它们,它们将被解释为普通字符,因此'\(TM\)'
匹配'(TM)'