SQL正则表达式仅替换整个短语

时间:2013-04-24 08:47:41

标签: sql regex sql-server-2008-r2 replace

@text = 'First +Last /(toto salary *0.07)'

在运算符

之间替换“仅整个短语”的SQL查询是什么

我的意思是:

  replace(@text , 'toto salary','bobo salary')
  result : 'First +Last /(bobo salary *0.07)'

但是:

replace(@text , 'toto','') 
NO result because not match whole phrase ('toto salary')

换句话说,替换'* + / - ()'运算符

之间的短语

1 个答案:

答案 0 :(得分:0)

以下可行:

select regexp_replace( 'First +Last /(toto salary *0.07)' , '(/\()toto salary( [*][0-9]+[.]?[0-9]*\))','\1bobo salary\2') from dual;

诀窍是将括号括在您想要保留的强制部分周围, 在本例中为/(*0.07),然后通过在替换表达式中添加\1\2等来包含这些部分。