REGEXP_INSTR (Transact-SQL)

Aplica-se a: SQL Server 2025 (17.x) Banco de Dados SQL do AzurePonto de extremidade de análise deSQL da Instância Gerenciada de SQL do Azureno Microsoft Fabric e Warehouse noBanco de Dados SQL do Microsoft Fabric no Microsoft Fabric

A REGEXP_INSTR função de expressão regular escalar retorna a posição inicial ou final da substring pareada, dependendo do valor do return_option argumento.

REGEXP_INSTR
(
    string_expression,
    pattern_expression [ , start [ , occurrence [ , return_option [ , flags [ , group ] ] ] ] ]
)

Arguments

string_expression

Uma expressão de uma cadeia de caracteres.

Pode ser uma constante, variável ou coluna de cadeia de caracteres.

Tipos de dados: char, nchar, varcharou nvarchar.

Note

As REGEXP_* funções suportam tipos LOB (varchar(max) e nvarchar(max)) de até 2 MB para o parâmetro string_expression .

pattern_expression

Padrão de expressão regular a ser correspondido. Normalmente, um literal de texto.

Tipos de dados: char, nchar, varcharou nvarchar. pattern_expression dá suporte a um comprimento máximo de caractere de 8.000 bytes.

start

Especifica a posição inicial da pesquisa na cadeia de caracteres de pesquisa. Optional. O tipo é int ou bigint.

A numeração é baseada em 1, o que significa que o primeiro caractere na expressão é 1 e o valor deve ser >= 1. Se a expressão inicial for menor que 1, retornará o erro. Se a expressão inicial for maior que o comprimento de string_expression, a função retornará 0. O padrão é 1.

occurrence

Uma expressão (inteiro positivo) que especifica qual ocorrência da expressão padrão dentro da cadeia de caracteres de origem será pesquisada ou substituída. O padrão é 1. Pesquisa no primeiro caractere do string_expression. Para um inteiro npositivo, ele procura a nth ocorrência começando com o primeiro caractere após a primeira ocorrência do pattern_expression e assim por diante.

return_option

Especifica se a posição inicial ou final da subcadeia de caracteres correspondente deve ser retornada. Use 0 para o início e 1 para o final. O valor padrão é 0. A consulta retorna um erro para qualquer outro valor.

flag

Um ou mais caracteres que especificam os modificadores usados para pesquisar correspondências. O tipo é varchar ou char, com um máximo de 30 caracteres.

Por exemplo, ims. O padrão é c. Se uma cadeia de caracteres vazia (' ') for fornecida, ela será tratada como o valor padrão ('c'). Forneça c ou qualquer outra expressão de caractere. Se o sinalizador contiver vários caracteres contraditórios, o SQL Server usará o último caractere.

Por exemplo, se você especificar ic o regex retornará correspondência que diferencia maiúsculas de minúsculas.

Se o valor contiver um caractere diferente daqueles listados em valores de sinalizador com suporte, a consulta retornará um erro como o exemplo a seguir:

Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Valores de sinalizador com suporte
Flag Description
i Não diferencia maiúsculas de minúsculas (padrão false)
m Modo de várias linhas: ^ e $ corresponder à linha de início/término, além do texto de início/término (padrão false)
s Permitir . correspondência \n (padrão false)
c Diferencia maiúsculas de minúsculas (padrão true)

group

Especifica qual grupo de captura (subexpression) de um pattern_expression determina a posição dentro string_expression retornar. O grupo é um fragmento do padrão entre parênteses e pode ser aninhado. Os grupos são numerados na ordem em que os parênteses esquerdos aparecem no padrão. O valor é um inteiro e deve ser >= 0 e não deve ser maior que o número de grupos no pattern_expression. O valor padrão é 0, que indica que a posição é baseada na cadeia de caracteres que corresponde a toda a pattern_expression.

Se o valor for maior que o número de grupos em pattern_expression, a função retornará 0.

Valor de retorno

int

Suporte da plataforma

  • Em Instância Gerenciada de SQL do Azure, as funções de expressão regular do T-SQL estão disponíveis apenas com a políticade atualização de data SQL Server 2025 ou Always-up-to -date.
  • Funções de expressão regular do T-SQL estão disponíveis no Banco de Dados SQL do Azure, SQL Database no Fabric e a partir do SQL Server 2025.
  • As funções de expressão regular do T-SQL não estão disponíveis no SQL Server 2022 ou versões anteriores.
  • Funções escalares de expressões regulares do T-SQL estão disponíveis como recurso de pré-visualização em Fabric Data Warehouse. Para mais informações, veja Funções de expressões regulares em Fabric Data Warehouse. Funções de tabela com valores de expressão regular no T-SQL não estão disponíveis em Fabric Data Warehouse.

Examples

Localize a posição da primeira subcadeia de caracteres que contém apenas dígitos na coluna PRODUCT_DESCRIPTION.

SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;

Localize a posição da terceira ocorrência da letra a (não diferencia maiúsculas de minúsculas) na coluna PRODUCT_NAME.

SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;

Localize a posição do final da primeira subcadeia de caracteres que começa com t e termina com e (diferencia maiúsculas de minúsculas) na coluna PRODUCT_DESCRIPTION.

SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;