将Regexp_Replace与空格一起使用

时间:2016-12-20 23:44:59

标签: sql oracle

我有一个像这样的表达式:

Select regexp_replace('Seattle, WA Se', 'Se', 'SE')

我想替换' Se'用' SE'但是不想触及“西雅图”这个词。到目前为止,两个'西雅图'和' Se'变成'SEattle'和' SE'。

如何在 RegExp_Replace 表达式中添加条件以查找和更改"独立" '硒'?

感谢。

2 个答案:

答案 0 :(得分:2)

  

如何在RegExp_Replace表达式中添加条件以查找和更改“独立”“Se”?

搜索前面的空格字符(或字符串开头),然后搜索Se,然后搜索后面的空格字符(或字符串结尾),并使用返回引用来维护前面和后面的内容替换字符串中的空格字符:

SELECT REGEXP_REPLACE(
         'Seattle, WA Se',
         '(^|\s)Se(\s|$)',
         '\1SE\2'
       )
FROM DUAL;

答案 1 :(得分:0)

将正则表达式更改为

'Se$'

$绑定到字符串结尾,因此'Se$'表示'Se'必须出现在字符串的末尾,后面没有字符。这将使跟踪Se匹配,但Se中的Seattle将不会匹配。

祝你好运。