カテゴリ:

文字列関数(正規表現)

REGEXP_COUNT

文字列でパターンが発生する回数を返します。

文字列関数(正規表現) もご参照ください。

構文

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

引数

必須:

サブジェクト

一致するサブジェクトです。

パターン

一致するパターンです。

オプション:

ポジション

関数が一致の検索を開始する文字列の先頭からの文字数です。

デフォルト: 1 (一致の検索は左側の最初の文字から始まります)

パラメーター

一致の検索に使用されるパラメーターを指定する1つ以上の文字の文字列です。サポートされている値:

c , i , m , e , s

詳細については、 パラメーター をご参照ください。

デフォルト: c

使用上の注意

照合の詳細

Arguments with collation specifications are currently not supported.

次の例では、単語 was の出現をカウントします。一致は、文字列の1番目の文字から始まります。

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

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

次の例は、発生の重複を示しています。

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