Compartilhar via


visualização de REGEXP_COUNT (Transact-SQL)

Aplica-se a: SQL Server 2025 (17.x) Versão prévia do Banco de Dados SQL do Azurebanco de dadosSQL do Banco de Dados SQL do Azure banco de dados SQL gerenciadono Microsoft Fabric

Nota

Como um recurso de visualização, a tecnologia apresentada neste artigo está sujeita a termos de uso complementares para o Microsoft Azure Previews.

Conta o número de vezes que um padrão de expressão regular é correspondido em uma cadeia de caracteres.

REGEXP_COUNT (
    string_expression,
    pattern_expression [ , start [ , flags ] ]
)

Argumentos

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.

Nota

As REGEXP_LIKEfunções e REGEXP_COUNTREGEXP_INSTR funções dão suporte a tipos LOB (varchar(max) e nvarchar(max)) até 2 MB para o parâmetro string_expression.

expressão_padrão

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.

iniciar

Especifique a posição inicial da pesquisa dentro da cadeia de caracteres de pesquisa. Opcional. 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.

sinalizadores

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
Bandeira Descrição
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

Exemplos

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;