- 类别:
REGEXP_REPLACE¶
返回指定模式(或模式的所有匹配项)已被移除或替换为替换字符串的主体。
语法¶
实参¶
必填:
subject用于搜索匹配项的字符串。
pattern要匹配的模式。
有关指定模式的准则,请参阅 字符串函数(正则表达式)。
可选:
replacement替换与模式匹配的子字符串的字符串。如果指定了空字符串,则该函数将删除所有匹配的模式并返回生成的字符串。
默认值:
''(空字符串)。position函数开始搜索匹配项时,字符串开头的字符数。该值必须是正整数。
默认值:``1``(搜索匹配项时,从左边的第一个字符开始)
occurrence指定要替换的模式的匹配项。如果指定
0,则替换所有匹配项。默认值:
0(所有匹配项)parameters包含一个或多个字符的字符串,指定用于搜索匹配项的参数。支持的值:
参数
描述
c区分大小写的匹配
i不区分大小写的匹配
m多行模式
e提取子匹配项
s单行模式 POSIX 通配符
.匹配\n默认:
c有关更多信息,请参阅 为正则表达式指定参数。
返回¶
返回类型 VARCHAR 的值。
如果未找到匹配项,则返回原始主体。
如果任何实参为 NULL,则返回 NULL。
使用说明¶
排序规则详细信息¶
Arguments with collation specifications currently aren't supported.
示例¶
以下示例将字符串中的所有空格替换为空(即移除所有空格):
以下示例匹配字符串 times 并将其替换为字符串 days。匹配从字符串中的第一个字符开始,并替换子字符串的第二个匹配项:
以下示例使用反向引用将字符串 firstname middlename lastname 重新排列为 lastname, firstname middlename 并在 lastname 和 firstname 之间插入逗号:
其余示例使用以下表中的数据:
以下示例通过空分组 (()) 在主题字符串的每个字符间(包括首尾)插入字符 *,该分组能匹配任意两个字符之间的位置:
以下示例通过将元音替换为空来移除所有元音(不区分顺序和大小写):
以下示例通过匹配单词边界 (\b),后接零个或多个单词字符 (\S)、字母 o,再接零个或多个单词字符直到下一个单词边界,从而移除主题中包含小写字母 o 的所有单词:
以下示例替换所有包含小写字母 o 的单词:调换首个 o 实例前后的字母,并将 o 替换为字符序列 @@:
以下示例与前一示例相同,但替换操作从主题字符串的第 3 个位置开始:
以下示例与前一示例相同,但仅替换从主题字符串第 3 位开始的第三次匹配项:
以下示例与前面的示例相同,但它使用不区分大小写的匹配: