「正規表現」とは、文字列内で検索するパターンを定義する一連の文字、ワイルドカード、または演算子のことです。SQL Anywhere では、SELECT 文の WHERE 句での REGEXP 探索条件、または SIMILAR TO 探索条件の一部として、および REGEXP_SUBSTR 関数の引数として、正規表現がサポートされています。LIKE 探索条件では正規表現がサポートされていませんが、LIKE で指定できる一部のワイルドカードと演算子は、正規表現のワイルドカードと演算子に似ています。
次の SELECT 文は、正規表現 ((K|C[^h])%
) を使用して、Contacts テーブルを検索し、K または C で始まる (ただし Ch は除く) 姓を持つ連絡先を返します。
SELECT Surname, GivenName FROM Contacts WHERE Surname SIMILAR TO '(K|C[^h])%'; |
正規表現では、次に説明するように追加構文を組み込んで、グループ化、量指定、アサーション、代替を指定できます。
グループ化
グループ化を使用すると、正規表現の一部をグループ化していくつかの追加一致基準に適用できます。たとえば、'(abc){2}'
は abcabc に一致します。
グループ化を使用すると、式の各部が評価される順序の制御もできます。たとえば、'ab(cdcd)'
では最初に cdcd の出現を検索し、次に、cdcd のインスタンスの前に ab があるかどうかを評価します。
量指定
量指定を使用すると、式の先行部分が出現する回数を制御できます。たとえば、疑問符 (?) は、その前の文字の 0 または 1 つのインスタンスに一致する量指定子です。このため、'honou?r'
は honor と honour の両方に一致します。
アサーション
通常、パターンの検索ではそのパターンが返されます。アサーションを使用すると、返される表現にパターンに含めることなく、パターンの存在をテストできます。たとえば、'SQL(?= Anywhere)'
は、SQL の後ろに 1 つのスペースと Anywhere が続く SQL にのみ一致します。
代替
代替を使用すると、前のパターンが検出されない場合に検索する代替パターンを指定できます。代替パターンは左から右の順に評価され、最初の一致で検索が停止します。たとえば、'col(o|ou)r'
は、color のインスタンスを検索します。インスタンスが検出されない場合、代わりに colour が検索されます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |