Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x)
Azure SQL Database
AzureSQL Managed Instance
SQL database in Microsoft Fabric
Devolve 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 ]
)
Requer o nível de compatibilidade do banco de dados 170. Para definir o nível de compatibilidade do banco de dados, revise o nível de compatibilidade ALTER DATABASE (Transact-SQL).
Note
As expressões regulares estão disponíveis na Instância Gerenciada SQL do Azure com a política de atualizaçãoSQL Server 2025 ou Always-up-to-date.
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_LIKEfunções , REGEXP_COUNTe REGEXP_INSTR suportam tipos de LOB (varchar(max) e nvarchar(max)) até 2 MB para o parâmetro string_expression .
pattern_expression
Padrão de expressão regular a ser correspondido. Geralmente um texto literal.
Tipos de dados: char, nchar, varcharou nvarchar. pattern_expression suporta um comprimento máximo de caracteres de 8.000 bytes.
flags
Um ou mais caracteres que especificam os modificadores usados para pesquisar correspondências. Type é varchar ou char, com um máximo de 30 caracteres.
Por exemplo, ims. A predefinição é c. Se uma (' ') de cadeia de caracteres vazia for fornecida, ela será tratada como o valor padrão ('c'). Forneça c ou quaisquer outras expressões de caracteres. 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á a correspondência que diferencia maiúsculas de minúsculas.
Se o valor contiver um caractere diferente daqueles listados em valores de sinalizador suportados, 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 suportados
| Flag | Description |
|---|---|
i |
Não diferencia maiúsculas de minúsculas (padrão false) |
m |
Modo multi-linha: e ^ corresponder a linha de início/fim, $ além do texto de início/fim (padrãofalse) |
s |
Deixar . corresponder \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 | Posição final do índice. |
match_value |
Mesmo tipo que string_expression ou varchar |
Expressão correspondente. |
substring_matches |
json | Documento JSON descrevendo a correspondência. |
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 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}]