カテゴリ:

文字列関数(正規表現)

REGEXP_LIKE

サブジェクトが指定されたパターンに一致する場合、trueを返します。両方の入力はテキスト式でなければなりません。

REGEXP_LIKE は LIKE 関数に似ていますが、 SQL LIKE パターン構文ではなく POSIX 拡張正規表現を使用します。LIKE よりも複雑な一致条件をサポートします。

ちなみに

検索最適化サービスを使用すると、この関数を呼び出すクエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。

エイリアス

RLIKE (最初の構文)

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

構文

REGEXP_LIKE( <subject> , <pattern> [ , <parameters> ] )
Copy

引数

必須:

subject

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

pattern

一致するパターンです。

オプション:

parameters

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

cimes

詳細については、 正規表現のパラメーターの指定 をご参照ください。

デフォルト: c

戻り値

戻り値のデータ型はBOOLEANです。

使用上の注意

  • 関数は暗黙的に両端でパターンを固定します(つまり、 '' は自動的に '^$' になり、 'ABC' は自動的に '^ABC$' になります)。ABC で始まる文字列と一致する場合、パターンは 'ABC.*' になります。

  • バックスラッシュ文字(\)はエスケープ文字です。詳細については、 一重引用符で囲まれた文字列定数での正規表現の指定 をご参照ください。

  • 使用上の注意については、正規表現関数の 一般的な使用上の注意 をご参照ください。

照合の詳細

Arguments with collation specifications are currently not supported.

都市の名前でテーブルを作成します。

CREATE OR REPLACE TABLE cities(city varchar(20));
INSERT INTO cities VALUES
    ('Sacramento'),
    ('San Francisco'),
    ('San Jose'),
    (null);
Copy

ワイルドカードを使用して大文字と小文字を区別するクエリを実行します。

SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*');
+------+
| CITY |
|------|
+------+
Copy

ワイルドカードを使用して大文字と小文字を区別しないクエリを実行します。

SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*', 'i');
+---------------+
| CITY          |
|---------------|
| San Francisco |
| San Jose      |
+---------------+
Copy

正規表現のその他の例については、 REGEXP をご参照ください。

ワイルドカード文字を検索するには、ワイルドカード文字をエスケープする必要があります。ワイルドカード文字の詳細については、 一重引用符で囲まれた文字列定数での正規表現の指定 をご参照ください。