regexp_replace 函数

适用于:勾选“是” 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-literalr 前缀)来避免转义字符预处理。

搜索从 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