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

Argumente

Benötigt:

subject

Abzugleichendes Subjekt.

pattern

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)

parameters

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 Angeben der Parameter für reguläre Ausdrücke.

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

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