Categorias:

Funções de cadeia de caracteres (expressões regulares)

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> ] )
Copy

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

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 |
+--------+
Copy

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 |
+----+--------------------------------------------------------------+
Copy