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%のパーセント値がヒットします。 |