はじめに

文字列データから特定パターンに該当するデータを検索したい場合があります。
本記事では正規表現を使用して上記のデータを検索する関数「REGEXP_LIKE」をご紹介します。

構文

REGEXP_LIKE( string, pattern[, modifiers ] )
パラメータ説明
string検索対象の文字列(項目)を指定します。
VARCHAR型またはLONG VARCHAR型の項目を指定できます。
patternstringに対して検索する正規表現を含む文字列を指定します。
正規表現の構文は、Perl 5の正規表現の構文と互換性があります。
modifiers[オプション]
1つ以上の単一文字フラグを指定します。
正規表現が文字列の一致を見つける方法を変更します。

'b'
文字列をUTF-8文字ではなくバイナリオクテットとして扱います。

'c'
大文字と小文字を区別するように一致を強制します(デフォルト)。

'i'
大文字と小文字を区別しないように一致を強制します。

'm'
文字列を複数行として一致するように扱います。
この修飾子を使用すると、行頭(^)および行末($)の正規表現演算子は、文字列内の改行(\n)に一致します。
m修飾子がない場合、行頭および行末演算子は文字列の先頭と末尾のみに一致します。

'n'
単一文字の正規表現演算子(.) が改行(\n) と一致することを許可します。
n修飾子がない場合、(.)演算子は改行を除くすべての文字に一致します。

'x'
正規表現にコメントを追加します。
x修飾子を使用すると、正規表現のエスケープされていないスペース文字とコメントがすべて無視されます。
コメントはハッシュ(#)文字で始まり、改行(\n)で終わります。
文字列で一致させたい正規表現のすべてのスペースは、バックスラッシュ(\)文字でエスケープする必要があります。


実行例


参考情報

REGEXP_LIKE関数のマニュアル
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/Functions/RegularExpressions/REGEXP_LIKE.htm

検証バージョンについて

この記事の内容はVertica 9.2で確認しています。