Mariadb 简明教程

MariaDB - Regular Expression

除了 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 转义语法,因此对所有“\”字符进行加倍。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]';