これは高度な機能であり、正規表現パターンの知識が必要です。

WHERE 句で正規表現演算子 REGEXP を使用して、複雑な一致クエリを処理できます。この演算子は、引数として渡されたパターンに対して、文字列の正規表現パターンマッチングを適用します。ADQL では、REGEXP 式を分析するために、Lucene 正規表現エンジンが使用されます。REGEXP 演算子を使用するクエリの検索結果は、正規表現の構文とルールに基づくだけでなく、分析対象フィールドと分析対象外フィールドのどちらを検索するかにも基づきます。分析対象フィールドで [REGEXP] を使用するには、「分析対象フィールド」を参照してください。

REGEXP  演算子は、分析対象フィールド内の小文字のトークンとのみ一致可能です。ワイルドカードまたは REGEXP を使用して分析対象フィールド内の大文字の文字列を検索するには、小文字の文字列を入力する必要があります。たとえば、INFO ではなく info です。

許可される文字

任意の Unicode 文字を正規表現パターンで使用できますが、特定の文字は予約されているため、エスケープする必要があります。予約済み文字は、リテラルバックスラッシュ文字 "\\". を含むバックスラッシュ "\*" でエスケープできます。

標準的な予約済み文字を次に示します。

. ? + * | { } [ ] ( ) " \

クエリのパフォーマンス上の理由から、REGEXP パターンで予約済み文字を使用する前に、文字列の最初の 3 文字を明示的に指定する必要があります。次の例では、[ 0-9 ] の角カッコの前に 123 を指定しています。

SELECT * FROM logs WHERE sourceType='yourLogFileAND id REGEXP '123 [ 0-9 ]'

次のようなクエリは無効です。

SELECT * FROM logs WHERE sourceType='yourLogFileAND id REGEXP '[ 0-9 ]'

操作、文字列、および関連付けられているパターンの例

サポートされる操作説明文字列パターン
任意の文字と一致しますピリオド「.」は、任意の文字を表すために使用できます。abcdeabc..
1 つ以上

プラス記号「+」を使用すると、直前の最短パターンを 1 回以上繰り返すことができます。

aaabb

aaab+
0 以上

アスタリスク「*」を使用すると、直前の最短パターンのゼロ回以上の繰り返しに一致させることができます。

aaaabbbcc

aaaab*c*
ゼロまたは 1疑問符「?」を使用すると、直前の最短のパターンがオプションになります。これは、ゼロまたは 1 回に一致します。

aaabbbc

aaa?b+c?
最小から最大まで

波カッコ「{}」を使用すると、直前の最短パターンを繰り返すことができる最小回数および最大回数(オプション)を指定できます。使用可能な形式を次に示します。

{5} # 正確に 5 回繰り返します。

{2, 5} # 2 回以上 5 回以下繰り返します。

aaaabbbcc

aaaab{3}c{2}
aaaab{2,4}c{2,4}

グループ化丸カッコ "()" を使用すると、サブパターンを形成できます。

abababab

abab(ab)*

代替 

パイプ記号 "|" は OR 演算子として機能します。左側または右側のいずれかのパターンが一致すると、一致は成功となります。

aaabbb

aaa(ccc|bbb)