适用于:
Databricks SQL
Databricks Runtime
将 str 中与 regexp 匹配的所有子字符串都替换为 rep。
语法
regexp_replace(str, regexp, rep [, position] )
参数
-
str:匹配的STRING表达式。 -
regexp:具有匹配模式的STRING表达式。 -
rep:作为替换字符串的STRING表达式。 -
position:一个大于 0 的可选整型数字文本,指示开始匹配的位置。 默认值为 1。
返回
一个 STRING。
字符串 regexp 必须是正则表达式。 有关支持的语法,请参阅 正则表达式 。
使用文本时,请使用raw-literal(r 前缀)来避免转义字符预处理。
搜索从 position 开始。 默认值为 1,表示 str 的开头。
如果 position 超过 str 的字符长度,则结果为 str。
常见错误条件
示例
将每个匹配项替换为固定文本
> SELECT regexp_replace('100-200', r'(\d+)', 'num');
num-num
掩码数字
> SELECT regexp_replace('SSN 123-45-6789', r'\d', '#');
SSN ###-##-####
使用捕获组对部件重新排序
在替换字符串中,使用 $ 后跟组号来引用捕获组 ($1, $2) 。
> SELECT regexp_replace('2024-03-15', r'(\d{4})-(\d{2})-(\d{2})', '$3/$2/$1');
15/03/2024
折叠重复空格
> SELECT regexp_replace('too many spaces', r'\s+', ' ');
too many spaces
无效的正则表达式模式
> SELECT regexp_replace('abc', '[invalid', 'x');
Error: INVALID_PARAMETER_VALUE.PATTERN