Mariadb-regular-expression

提供:Dev Guides
移動先:案内検索

MariaDB-正規表現

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

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

以下に示す標準のREGEXP演算子構文の使用を確認します-

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

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

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

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

使用できる可能なパターンの表は以下に示されています-

Sr.No Pattern & Description
1

^

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

2

$

文字列の末尾に一致します。

3

.

単一の文字に一致します。

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]';