Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2025 (17.x) — предварительная версия
базы данных
SQLAzure Для Управляемого экземпляра
SQL Azureв Microsoft Fabric
Заметка
В качестве предварительной версии технология, представленная в этой статье, подлежит дополнительным условиям использования для предварительных версий Microsoft Azure.
Возвращает измененную исходную строку, замененную строкой замены, в которой найдено вхождение шаблона регулярного выражения. Если совпадения не найдены, функция возвращает исходную строку.
REGEXP_REPLACE
(
string_expression,
pattern_expression [, string_replacement [, start [, occurrence [, flags ] ] ] ]
)
Аргументы
string_expression
Выражение символьной строки.
Может быть константой, переменной или столбцом символьной строки.
Типы данных: char, nchar nchar, varcharили nvarchar nvarchar.
Заметка
REGEXP_LIKE
REGEXP_COUNT
Функции REGEXP_INSTR
и функции поддерживают бизнес-типы (varchar(max) и nvarchar(max)) до 2 МБ для параметра string_expression.
выражение_образца
Шаблон регулярного выражения для сопоставления. Обычно текстовый литерал.
Типы данных: char, nchar nchar, varcharили nvarchar nvarchar. pattern_expression поддерживает максимальную длину символов в 8 000 байт.
string_replacement
Строковое выражение, указывающее строку замены для сопоставления подстроок и заменяет подстроки, соответствующие шаблону. String_replacement могут быть типами данных char, varchar, nchar и nvarchar. Если указана пустая строка (' '
), функция удаляет все соответствующие шаблоны и возвращает результирующую строку. Строка замены по умолчанию — пустая строка (' '
).
String_replacement может содержать \n, где n — 1–9, чтобы указать, что исходная подстрока, соответствующая группе n'th (вложенные выражения) шаблона, должна быть вставлена, и она может содержать &
, чтобы указать, что подстрока, соответствующая всему шаблону, должна быть вставлена. Напишите \ если необходимо поместить литеральную обратную косую черту в замещающий текст.
Например
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3')
Возвращает:
(123) 456-7890
Если указанное \n
значение string_replacement
больше количества групп в pattern_expression, функция игнорирует это значение.
Например:
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
Возвращает:
(123) ()-xxxx
запуска
Укажите начальную позицию для поиска в строке поиска. Необязательный. Тип int или bigint.
Нумерирование основано на 1, то есть первый символ в выражении 1
, а значение должно быть >= 1
. Если начальная выражение меньше 1
, возвращает ошибку. Если начальная длина выражения превышает длину string_expression, функция возвращает string_expression. Значение по умолчанию — 1
.
вхождения
Выражение (положительное целое число), указывающее, какое вхождение выражения шаблона в исходной строке следует искать или заменять. По умолчанию используется 1
. Выполняет поиск первого символа string_expression. Для положительного целого числа n
он ищет nth
вхождение, начиная с первого символа после первого вхождения pattern_expression и т. д.
флаги
Один или несколько символов, указывающих модификаторы, используемые для поиска совпадений. Тип varchar или charс не более чем 30 символами.
Например, ims
. Значение по умолчанию — c
. Если указана пустая строка (' ')
, она будет рассматриваться как значение по умолчанию ('c')
. Укажите c
или любые другие символьные выражения. Если флаг содержит несколько противоречивых символов, SQL Server использует последний символ.
Например, если указать ic
regex возвращает соответствие регистра.
Если значение содержит символ, отличный от указанных в поддерживаемых значений флагов, запрос возвращает ошибку, как показано в следующем примере:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Поддерживаемые значения флагов
Флаг | Описание |
---|---|
i |
Без учета регистра (по умолчанию false ) |
m |
Многострочный режим: ^ и $ сопоставление начальной и конечной строки в дополнение к начальной и конечной строке (по умолчанию false ) |
s |
Разрешить . совпадение \n (по умолчанию false ) |
c |
Учет регистра (по умолчанию true ) |
Возвращаемое значение
Выражение.
Примеры
Замените все вхождения a
или e
X
в именах продуктов.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
Замените первое вхождение cat
или dog
pet
в описаниях продукта
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
Замените последние четыре цифры телефонных номеров звездочками
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;