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

SQL Oracle - Replace character in string between two vowels

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

示例:

String: abcdeZebca Output: abcdeSebca

字母 Z 被替换为 S,因为它位于两个元音字母之间。这在 SQL Oracle 中可能吗?

不过我猜你没有听懂文档中关于反向引用的内容:

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

解释:

[aeiou] 表示匹配任何单个元音。将它括在括号中意味着 "and remember what you found into a numbered slot, starting with 1" 槽在整个表达式中从左到右编号 - 每个(括号表达式)都有自己的编号

因此完整的表达方式是: - 找到任何元音并存储在插槽 1 - 其次是 Z - 后跟任何元音并存储在插槽 2

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

的内容

因此

aZe -> aSe
eZi -> eSi

等等..