- カテゴリ:
REGEXP_LIKE¶
文字列が指定されたパターンに一致するかどうかを比較します。両方の入力はテキスト式でなければなりません。
REGEXP_LIKE は [ NOT ] LIKE 関数に似ていますが、 SQL LIKE パターン構文ではなく POSIX 拡張正規表現を使用します。LIKE よりも複雑な一致条件をサポートします。
Tip
検索最適化サービスを使用すると、この関数を呼び出すクエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。
- エイリアス:
[ NOT ] RLIKE (最初の構文)
文字列関数(正規表現) もご参照ください。
構文¶
REGEXP_LIKE( <subject> , <pattern> [ , <parameters> ] )
引数¶
必須:
subject
一致するサブジェクトです。
pattern
一致するパターンです。
オプション:
parameters
一致の検索に使用されるパラメーターを指定する1つ以上の文字の文字列です。サポートされている値:
c
、i
、m
、e
、s
詳細については、 正規表現のパラメーターの指定 をご参照ください。
デフォルト:
c
戻り値¶
BOOLEAN または NULL を返します。一致する場合は TRUE になります。それ以外の場合は、 FALSE を返します。いずれかの引数が NULL の場合は NULL を返します。
使用上の注意¶
関数は暗黙的に両端でパターンを固定します(つまり、
''
は自動的に'^$'
になり、'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);
ワイルドカードを使用して大文字と小文字を区別するクエリを実行します。
SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*');+------+ | CITY | |------| +------+
ワイルドカードを使用して大文字と小文字を区別しないクエリを実行します。
SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*', 'i');+---------------+ | CITY | |---------------| | San Francisco | | San Jose | +---------------+
正規表現のその他の例については、 [ NOT ] REGEXP をご参照ください。
ワイルドカード文字を検索するには、ワイルドカード文字をエスケープする必要があります。ワイルドカード文字の詳細については、 一重引用符で囲まれた文字列定数での正規表現の指定 をご参照ください。