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

Arguments

Obligatoire :

subject

Sujet devant correspondre.

pattern

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)

parameters

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 Spécification des paramètres de l’expression régulière.

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

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