Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x)
Banco de Dados
SQL do AzureBanco de DadosSQL do Azure Banco de Dados SQL banco de dados SQL do Banco de Dados SQL do Azure
banco de dados SQL no Microsoft Fabric
A REGEXP_MATCHES função de expressão regular com valores de tabela retorna uma tabela de substrings capturadas que correspondem a um padrão de expressão regular a uma string. Se nenhuma correspondência for encontrada, a função não retornará nenhuma linha.
REGEXP_MATCHES
(
string_expression,
pattern_expression [ , flags ]
)
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.
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) |
Returns
Retorna um resultado tabular da seguinte maneira:
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
match_id |
bigint | A sequência de palavras correspondentes. |
start_position |
int | Posição inicial do índice. |
end_position |
int | Terminando a posição do índice. |
match_value |
Mesmo tipo que string_expression ou varchar |
Expressão correspondente. |
substring_matches |
json | Documento JSON que descreve a correspondência. |
Suporte da plataforma
Requer o nível de compatibilidade do banco de dados 170. Para definir o nível de compatibilidade do banco de dados, revise ALTER DATABASE o nível de compatibilidade (Transact-SQL). O requisito de nível de compatibilidade não se aplica se a configuração ALLOW_BUILTIN_TVF_IN_ALL_COMPAT_LEVELS escopada pelo banco de dados estiver ativada.
- 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.
- Em Fabric Data Warehouse, as funções
REGEXP_MATCHESde valores de tabela de expressão regular e REGEXP_SPLIT_TO_TABLE não são suportadas. Funções escalares de expressões regulares do T-SQL estão disponíveis como recurso de pré-visualização em Fabric Data Warehouse.
Examples
Retornar resultados tabulares desse 'Learning #AzureSQL #AzureSQLDB' início com um # caractere seguido por um ou mais caracteres alfanuméricos (A-Z, a-z, 0-9) ou sublinhados (_).
SELECT *
FROM REGEXP_MATCHES ('Learning #AzureSQL #AzureSQLDB', '#([A-Za-z0-9_]+)');
match_id start_position end_position match_value substring_matches
1 10 18 #AzureSQL [{"value":"AzureSQL","start":11,"length":8}]
2 20 30 #AzureSQLDB [{"value":"AzureSQLDB","start":21,"length":10}]
Retornar cadeias de caracteres dessa ABC correspondência de cadeias de caracteres que começam com a letra A seguida por exatamente dois caracteres.
SELECT *
FROM REGEXP_MATCHES ('ABC', '^(A)(..)$');
match_id start_position end_position match_value substring_matches
1 1 3 ABC [{"value":"A","start":1,"length":1},{"value":"BC","start":2,"length":2}]