- Kategorien:
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:
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¶
Hinweise zur Verwendung der Funktionen für reguläre Ausdrücke finden Sie unter Allgemeine 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 | +----+--------------------------------------------------------------+