REGEXP_COUNT¶
Retorna o número de vezes que um padrão ocorre em uma cadeia de caracteres.
Consulte também Funções de cadeia de caracteres (expressões regulares).
Sintaxe¶
REGEXP_COUNT( <subject> , <pattern> [ , <position> , <parameters> ] )
Argumentos¶
Obrigatório:
subject
Sujeito à correspondência.
pattern
Padrão a atender.
Opcional:
position
Número de caracteres desde o início da cadeia de caracteres onde a função começa a procurar correspondências.
Padrão:
1
(a busca por uma correspondência começa no primeiro caractere à esquerda)parameters
Cadeia de caracteres de um ou mais caracteres que especifica os parâmetros usados para a busca de correspondências. Valores com suporte:
c
,i
,m
,e
,s
Para obter mais detalhes, consulte Especificação dos parâmetros para a expressão regular.
Padrão:
c
Notas de uso¶
Para notas de uso, consulte Notas de uso geral para funções de expressão regular.
Detalhes do agrupamento¶
Arguments with collation specifications are currently not supported.
Exemplos¶
O seguinte exemplo conta as ocorrências da palavra was
. A correspondência começa no primeiro caractere da cadeia de caracteres:
select regexp_count('It was the best of times, it was the worst of times', '\\bwas\\b', 1) as "result" from dual; +--------+ | result | |--------| | 2 | +--------+
O exemplo seguinte ilustra ocorrências que se sobrepõem:
create or replace table overlap (id number, a string); insert into overlap values (1,',abc,def,ghi,jkl,'); insert into overlap values (2,',abc,,def,,ghi,,jkl,'); select * from overlap; select id, regexp_count(a,'[[:punct:]][[:alnum:]]+[[:punct:]]', 1, 'i') from overlap; +----+--------------------------------------------------------------+ | ID | REGEXP_COUNT(A,'[[:PUNCT:]][[:ALNUM:]]+[[:PUNCT:]]', 1, 'I') | |----+--------------------------------------------------------------| | 1 | 2 | | 2 | 4 | +----+--------------------------------------------------------------+