Catégories :

Fonctions de chaîne (expressions régulières)

REGEXP_COUNT

Renvoie le nombre de fois qu’un motif se produit dans une chaîne.

Voir aussi Fonctions de chaîne (expressions régulières).

Syntaxe

REGEXP_COUNT( <subject> , <pattern> [ , <position> , <parameters> ] )

Arguments

Obligatoire :

sujet

Sujet devant correspondre.

motif

Modèle devant correspondre.

Facultatif :

position

Nombre de caractères depuis le début de la chaîne pour lesquels la fonction commence à rechercher des correspondances.

Par défaut : 1 (la recherche d’une correspondance commence au premier caractère à gauche)

paramètres

Chaîne d’un ou plusieurs caractères spécifiant les paramètres utilisés pour la recherche de correspondances. Valeurs prises en charge :

c , i , m , e , s

Pour plus de détails, voir Paramètres.

Par défaut : c

Notes sur l’utilisation

Détails du classement

Arguments with collation specifications are currently not supported.

Exemples

L’exemple suivant compte les occurrences du mot was. La correspondance commence au premier caractère de la chaîne :

select regexp_count('It was the best of times, it was the worst of times', '\\bwas\\b', 1) as "result" from dual;

+--------+
| result |
|--------|
|      2 |
+--------+

L’exemple suivant illustre des occurrences qui se chevauchent :

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