Функция 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-literal (r префикс), чтобы избежать предварительной обработки escape-последовательностей.

Поиск начинается с точки 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