Skip to main content

3.5.1. SIMILAR TOを使った正規表現による検索

SIMILAR TOは、正規表現を使用してパターン検索ができる演算子です。限定されたメタ文字を使用するLIKE演算子より、高度な文字列検索条件を指定できます。

なお、LIKE演算子との互換性のため、アンダースコア「_」、パーセント「%」も使用できます。アンダースコア「_」は「[\S\s]」、パーセント「%」は「[\S\s]*」のメタ文字に置き換えられます。

正規表現に使用できる代表的なメタ文字

正規表現に使用できる代表的なメタ文字は次のとおりです。

メタ文字

説明

.

ドットは任意の1文字を表します。なお、改行コードは含まれません。

*

直前のパターンの0回以上の繰り返しを表します。

+

直前のパターンの1回以上の繰り返しを表します。

?

直前のパターンが0回または1回現れることを表します。

{m}

直前のパターンがm回の繰り返しを表します。

{m,}

直前のパターンがm回以上の繰り返しを表します。

{m, n}

直前のパターンがm回以上、n回以下の繰り返しを表します。

( )

複数文字をグループ化します。

|

OR条件を表します。

[ ]

[]内の任意の1文字、または、-で文字範囲を表します。

[0-9]、[a-z]、[A-Z]、[ぁ-ん]、[ァ-ン]など、範囲を指定できます。

[^ ]

[]内の文字以外の文字を表します。

\

エスケープ文字

次に示すを文字として使用する場合、エスケープ文字を付ける必要があります。

%_^ $ \ .* + ?( ) [ ] { } |

参考

Googleの提供するRE2ライブラリを利用しており、PCRE、Perlの正規表現にも対応しています。

検索例

メタ文字を使用したSIMILAR TOの検索例を次に示します。

検索パターン

説明

'N1234' SIMILAR TO 'N.*'

Nから始まる任意の文字がヒットします。

'N1234' SIMILAR TO 'N[0-9]+'

N+数字(任意の桁数)の文字がヒットします。

'N1234' SIMILAR TO 'N[0-9]{4}'

N+4桁の数字の文字列がヒットします。

'りんご' SIMILAR TO 'アップル|りんご|林檎'

「アップル」、「りんご」、または「林檎」がヒットします。

'09012345678' SIMILAR TO '0[5-9]0[0-9]{8}|0[5-9]0-[0-9]{4}-[0-9]{4}'

携帯の電話番号(0X0XXXXXXXXまたは0X0-XXXX-XXXX)がヒットします。

'64.2%' SIMILAR TO '[0-9.]+\%'

XX.X%のパーセント値がヒットします。