Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 言語の要素 » 探索条件 » LIKE 探索条件、REGEXP 探索条件、SIMILAR TO 探索条件

 

REGEXP 探索条件

パターンと文字列を一致させます。

構文
expression [ NOT ] REGEXP pattern [ ESCAPE escape-expression ]
パラメータ

expression   検索される文字列。

pattern   expression を検索するための正規表現。

正規表現の構文の詳細については、正規表現の概要を参照してください。

escape-expression   一致で使用されるエスケープ文字。デフォルトは円記号 (\) です。

備考

REGEXP 探索条件は文字列全体に一致し、部分文字列には一致しません。部分文字列で文字列に一致させるには、残り部分と一致するワイルドカードで文字列を囲みます (.*pattern.*)。たとえば、SELECT ... WHERE Description REGEXP 'car' は car にのみ一致し、sportscar には一致しません。一方、SELECT ... WHERE Description REGEXP '.*car' は、car や sportscar など、car で終わるすべての文字列に一致します。または、REGEXP_SUBSTR 関数を使用するようにクエリを書き換えることができます。この関数は、文字列内の部分文字列を検索します。

部分文字クラスのみに一致させる場合は、外側の角カッコと、部分文字クラス用の角カッコを使用する必要があります。たとえば expression REGEXP '[[:digit:]]' のように指定します。部分文字クラスの一致の詳細については、正規表現:特殊部分文字クラスを参照してください。

データベース照合と一致

REGEXP を使用した場合に、パターンに含まれるリテラルと文字とが一致するのは、厳密な意味で同じ文字の場合 (コードポイント値が同じ場合) のみです。文字クラスによる範囲 (たとえば '[A-F]') と一致する文字は、そのコードポイント値が、範囲の最初に指定されている文字 (A) のコードポイント値以上で、なおかつ、範囲で次に指定されている文字 (F) のコードポイント値以下の場合に限られます。

LIKE、SIMILAR TO、REGEXP における一致や評価範囲の動作の比較については、LIKE 探索条件、REGEXP 探索条件、SIMILAR TO 探索条件を参照してください。

文字列単位で比較する等価演算子 (=) やその他の演算子とは異なり、比較が文字単位で実行されます。たとえば、UCA 照合 (照合が UCA に設定された CHAR または NCHAR) で比較が行われる場合、'A'='AE' は true ですが、'A' REGEXP 'AE' は false です。

各国文字 (NCHAR) サポート

REGEXP 探索条件は、CHAR と NCHAR の文字列の比較に使用できます。この場合、共通データ型を使用して比較が行われるように、文字セット変換が実行されます。次に、コードポイント単位の比較が実行されます。CHAR と NCHAR の比較を参照してください。

引用符で囲んだ値の前に N を付けることによって (たとえば、expression REGEXP N'pattern')、expression または pattern を NCHAR 文字列リテラルとして指定できます。また、CAST 関数を使用して、CHAR または NCHAR にパターンをキャストすることもできます (たとえば、expression REGEXP CAST(pattern AS datatype))。

文字列リテラルCAST 関数 [データ型変換]を参照してください。

参照