当前位置: 首页 > 教程 > MariaDB >

MariaDB正则表达式

精华
小牛编辑
153浏览
2023-03-14

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