MariaDB-正規表現

MariaDBは、LIKE句から利用できるパターンマッチングに加えて、REGEXP演算子を介した正規表現ベースのマッチングを提供します。演算子は、指定されたパターンに基づいて文字列式のパターンマッチングを実行します。

MariaDB 10.0.5では、PCRE正規表現が導入されました。これにより、再帰パターン、先読みアサーションなどの領域へのマッチングの範囲が劇的に拡大します。

以下に示す標準のREGEXP演算子構文の使用を確認してください-

SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';

REGEXPは、パターン一致の場合は1を返し、パターン一致がない場合は0を返します。

反対のオプションは、NOTREGEXPの形式で存在します。MariaDBは、互換性の理由で作成されたREGEXPとNOT REGEXP、RLIKEとNOTRLIKEの同義語も提供します。

比較されるパターンは、リテラル文字列またはテーブル列などの他のものにすることができます。文字列では、Cエスケープ構文を使用するため、「\」文字を2倍にします。REGEXPも、バイナリ文字列を除いて、大文字と小文字を区別しません。

使用できる可能なパターンの表を以下に示します。

シニア番号 パターンと説明
1

^

文字列の先頭と一致します。

2

$

文字列の終わりに一致します。

3

.

1文字に一致します。

4

[...]

角かっこ内の任意の文字と一致します。

5

[^...]

角かっこで囲まれていない文字と一致します。

6

p1|p2|p3

どのパターンにも一致します。

7

*

前の要素の0個以上のインスタンスに一致します。

8

+

前の要素の1つ以上のインスタンスに一致します。

9

{n}

前の要素のn個のインスタンスと一致します。

10

{m,n}

これは、前の要素のmからnのインスタンスに一致します。

以下に示すパターンマッチングの例を確認してください-

「pr」で始まる製品−

SELECT name FROM product_tbl WHERE name REGEXP '^pr';

「na」で終わる製品-

SELECT name FROM product_tbl WHERE name REGEXP 'na$';

母音で始まる商品−

SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';