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
等等..
我已经阅读了所有 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
等等..