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 |
+---------------------+