REGEXP_SUBSTR (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_SUBSTR função escalar de expressão regular retorna uma ocorrência de uma substring de uma string que corresponde ao padrão de expressão regular. Se nenhuma correspondência for encontrada, ela retornará NULL.

REGEXP_SUBSTR
(
    string_expression,
    pattern_expression [ , start [ , occurrence [ , 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

Especifique a posição inicial da pesquisa dentro da 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á NULL. 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 positivo n, 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.

flags

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 (subexpressão) de um pattern_expression determina a posição dentro de string_expression retornar. O grupo de captura (subexpressão) é um fragmento de padrão entre parênteses e pode ser aninhado.

Os grupos de captura são numerados na ordem em que seus parênteses esquerdos aparecem. O tipo de dado do grupo é int e o valor deve ser maior ou igual a 0, e não pode ser maior que o número de grupos de captura (subexpressões) em pattern_expression. O valor padrão do grupo é 0, que indica que a posição é baseada na string que corresponde a todo o padrão.

Valor de retorno

String.

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

Extraia o nome de domínio de um endereço de email.

SELECT REGEXP_SUBSTR(EMAIL, '@(.+)$', 1, 1, 'i', 1) AS DOMAIN
FROM CUSTOMERS;

Encontre a primeira palavra em uma frase que começa com uma vogal.

SELECT REGEXP_SUBSTR(COMMENT, '\b[aeiou]\w*', 1, 1, 'i') AS WORD
FROM FEEDBACK;

Obtenha os últimos quatro dígitos de um número de cartão de crédito.

SELECT REGEXP_SUBSTR(CARD_NUMBER, '\d{4}$') AS LAST_FOUR
FROM PAYMENTS;