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 AzurePonto de extremidade de análise de
SQL da Instância Gerenciada de SQL
do Azureno Microsoft Fabric e Warehouse noBanco de Dados SQL do Microsoft Fabric
no Microsoft Fabric
A REGEXP_COUNT função escalar de expressão regular conta o número de vezes que um padrão de expressão regular é combinado em uma cadeia.
REGEXP_COUNT
(
string_expression,
pattern_expression [ , start [ , 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.
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 1a pattern_expression retornada começará no primeiro caractere especificado em string_expression. Se a expressão inicial for maior que o comprimento de string_expression, a função retornará 0. O padrão é 1.
Se a expressão inicial for menor que 1, a consulta retornará um erro.
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) |
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
Conte quantas vezes a letra a aparece em cada nome do produto.
SELECT PRODUCT_NAME,
REGEXP_COUNT(PRODUCT_NAME, 'a') AS A_COUNT
FROM PRODUCTS;
Conte quantos produtos têm um nome que termina com ing.
SELECT COUNT(*)
FROM PRODUCTS
WHERE REGEXP_COUNT(PRODUCT_NAME, 'ing$') > 0;
Conte quantos produtos têm um nome que contém três consoantes consecutivas, ignorando maiúsculas e minúsculas.
SELECT COUNT(*)
FROM PRODUCTS
WHERE REGEXP_COUNT(PRODUCT_NAME, '[^aeiou]{3}', 1, 'i') > 0;