SQL Oracle - 在两个元音之间替换字符串中的字符

时间:2017-08-31 23:36:40

标签: sql oracle regexp-replace

我已经阅读了所有REGEXP_REPLACE文档,但没有找到我想要的任何内容。我想将两个元音之间的特定字符替换为另一个字符。

示例:

  

字符串:abcdeZebca   输出:abcdeSebca

字母Z被S取代,因为它在两个元音之间。那可能在SLQ Oracle吗?

1 个答案:

答案 0 :(得分:3)

我猜你没有注意到文档中的反向引用:

SELECT
  REGEXP_REPLACE(yourcolumn, '([aeiou])Z([aeiou])', '\1S\2')
FROM 
  yourtable

说明:

[aeiou]表示匹配任何单个元音。用括号括起来表示“并记住你在编号插槽中找到的内容,从1开始”插槽在整个表达式中从左到右编号 - 每个(括号表达式)都有自己的编号

因此,完整表达意味着: - 在插槽1中找到任何元音和存储 - 接着是Z. - 接着是插槽2中的任何元音和存储

替换字符串是: - 插槽1的内容 - S. - 插槽2的内容

因此

aZe -> aSe
eZi -> eSi

等等..

相关问题