MariaDB正規表示式


MariaDB通過REGEXP運算子提供基於正規表示式的匹配。

語法:

expression REGEXP pattern

引數說明:

  • expression:字元表示式,如列或欄位。
  • pattern:正規表示式匹配資訊。模式可以是以下的組合:
編號 pattern 描述
1 ^ 匹配一個字串的開始。如果與「m」的匹配引數一起使用,則匹配表示式中任何位置的行的開頭。
2 $ 匹配字串的結尾。 如果與「m」的匹配引數一起使用,則匹配表示式中任何位置的行的末尾。
3 * 匹配零次或多次發生。
4 + 匹配一個或多個事件。
5 ? 匹配零個或一個發生。
6 . 匹配除null之外的任何字元。
7 / 用作「或」來指定多個選項。
8 [ ] 用於指定一個匹配列表,嘗試匹配列表中的任何一個字元。
9 [^ ] 用於指定一個不匹配的列表,嘗試匹配除列表中的字元以外的任何字元。
10 ( ) 用於將表示式分組為一個子表示式。
11 {m} 匹配m次。
12 {m,} 至少匹配m次。
13 {m,n} 至少匹配m次,但不多於n次。
14 \n n19之間的數位。匹配在遇到\n之前在()內找到的第n個子表示式。
15 [..] 匹配一個可以多於一個字元的整理元素。
16 [::] 匹配字元類。
17 [==] 匹配等價類。
18 \d 匹配一個數位字元。
19 \w 匹配一個字元。
20 \s 匹配一個空白字元。
21 *? 匹配前面的模式零次或多次發生。
22 +? 匹配前面的模式一個或多個事件。
23 ?? 匹配前面的模式零次或一次出現。
24 {n}? 匹配前面的模式n次。
25 {n,}? 匹配前面的模式至少n次。
26 {n,m}? 匹配前面的模式至少n次,但不超過m次。

範例

SELECT 'Monty!' REGEXP 'm%y%%';
+-------------------------+
| 'Monty!' REGEXP 'm%y%%' |
+-------------------------+
|                       0 |
+-------------------------+

SELECT 'Monty!' REGEXP '.*';
+----------------------+
| 'Monty!' REGEXP '.*' |
+----------------------+
|                    1 |
+----------------------+

SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
+---------------------------------------+
| 'new*\n*line' REGEXP 'new\\*.\\*line' |
+---------------------------------------+
|                                     1 |
+---------------------------------------+

SELECT 'a' REGEXP 'A', 'a' REGEXP BINARY 'A';
+----------------+-----------------------+
| 'a' REGEXP 'A' | 'a' REGEXP BINARY 'A' |
+----------------+-----------------------+
|              1 |                     0 |
+----------------+-----------------------+

SELECT 'a' REGEXP '^[a-d]';
+---------------------+
| 'a' REGEXP '^[a-d]' |
+---------------------+
|                   1 |
+---------------------+