Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:Конечная точка аналитики SQLServer 2025 (17.x) Базы
данных
SQL Azure в Microsoft Fabric и хранилище в
базе данных SQL Microsoft Fabric в Microsoft Fabric
Скалярная функция регулярного выражения REGEXP_INSTR возвращает начальную или конечную позицию сопоставленной подстроки в зависимости от значения return_option аргумента.
REGEXP_INSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , return_option [ , flags [ , group ] ] ] ] ]
)
Arguments
string_expression
Выражение символьной строки.
Может быть константой, переменной или столбцом символьной строки.
Типы данных: char, nchar nchar, varcharили nvarchar nvarchar.
Note
Функции поддерживают REGEXP_* типы LOB (varchar(max) и nvarchar(max)) до 2 МБ для параметра string_expression .
pattern_expression
Шаблон регулярного выражения для сопоставления. Обычно текстовый литерал.
Типы данных: char, nchar nchar, varcharили nvarchar nvarchar. pattern_expression поддерживает максимальную длину символов в 8 000 байт.
start
Задает начальную позицию для поиска в строке поиска. Optional. Тип int или bigint.
Нумерирование основано на 1, то есть первый символ в выражении 1, а значение должно быть >= 1. Если начальная выражение меньше 1, возвращает ошибку. Если начальная длина выражения превышает длину string_expression, функция возвращается 0. Значение по умолчанию — 1.
occurrence
Выражение (положительное целое число), указывающее, какое вхождение выражения шаблона в исходной строке следует искать или заменять. По умолчанию используется 1. Выполняет поиск первого символа string_expression. Для положительного целого числа nон ищет nth вхождение, начиная с первого символа после первого вхождения pattern_expression и т. д.
return_option
Указывает, следует ли возвращать начальную или конечную позицию соответствующей подстроки. Используйте 0 для начала и 1 для конца. Значение по умолчанию — 0. Запрос возвращает ошибку для любого другого значения.
flag
Один или несколько символов, указывающих модификаторы, используемые для поиска совпадений. Тип 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.
Поддерживаемые значения флагов
| Flag | Description |
|---|---|
i |
Без учета регистра (по умолчанию false) |
m |
Многострочный режим: ^ и $ сопоставление начальной и конечной строки в дополнение к начальной и конечной строке (по умолчанию false) |
s |
Разрешить . совпадение \n (по умолчанию false) |
c |
Учет регистра (по умолчанию true) |
group
Указывает, какая группа захвата (subexpression) pattern_expression определяет позицию в string_expression возвращаемой. Группа представляет собой фрагмент шаблона, заключенного в скобки и может быть вложен. Группы нумеруются в порядке, в котором их левые скобки отображаются в шаблоне. Значение является целым числом и должно быть >= 0 и не должно быть больше числа групп в pattern_expression. Значение по умолчанию — это 0значение, указывающее, что позиция основана на строке, которая соответствует всей pattern_expression.
Если значение больше числа групп в pattern_expression, функция возвращается 0.
Возвращаемое значение
int
Поддержка платформы
- В Управляемый экземпляр SQL Azure году функции регулярных выражений T-SQL доступны только с политикой обновленияSQL Server 2025 или Always-up-to-date.
- Функции регулярного выражения T-SQL доступны в База данных SQL Azure, SQL базе данных в Fabric и, начиная с SQL Server 2025.
- Функции регулярного выражения T-SQL недоступны в версиях SQL Server 2022 и более ранних.
- Скалярные функции регулярных выражений T-SQL доступны как функция предварительного просмотра в Fabric Data Warehouse. Для получения дополнительной информации см. функции регулярных выражений в Fabric Data Warehouse. Таблицные функции T-SQL с регулярными выражениями недоступны в Fabric Data Warehouse.
Examples
Найдите позицию первой подстроки, содержащей только цифры в столбце PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
Найдите позицию третьего вхождения буквы a (без учета регистра) в столбце PRODUCT_NAME.
SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;
Найдите позицию конца первой подстроки, которая начинается с t и заканчивается e (с учетом регистра) в столбце PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;