Kategorien:

Zeichenfolgenfunktionen (reguläre Ausdrücke)

REGEXP_COUNT

Gibt die Anzahl des Vorkommens eines Musters in einer Zeichenfolge zurück.

Siehe auch Zeichenfolgenfunktionen (reguläre Ausdrücke).

Syntax

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

Argumente

Benötigt:

Subjekt

Abzugleichendes Subjekt.

Muster

Abzugleichendes Muster.

Optional:

Position

Anzahl der Zeichen ab dem Anfang der Zeichenfolge, an dem die Funktion mit der Suche nach Übereinstimmungen beginnt.

Standard: 1 (die Suche nach einer Übereinstimmung beginnt beim ersten Zeichen links)

Parameter

Zeichenfolge aus einem oder mehreren Zeichen, in der die Parameter angegeben sind, die zur Suche nach Übereinstimmungen verwendet werden. Unterstützte Werte:

c , i , m , e , s

Weitere Details dazu finden Sie unter Parameter.

Standard: c

Nutzungshinweise

Sortierungsdetails

Arguments with collation specifications are currently not supported.

Beispiele

Im folgenden Beispiel wird das Vorkommen des Worts was gezählt. Der Abgleich beginnt beim 1. Zeichen in der Zeichenfolge:

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

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

Im folgenden Beispiel werden überlappende Vorkommen veranschaulicht:

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