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 转义语法,因此请将所有“\”字符加倍。REGEXP 不区分大小写,二进制字符串除外。

下面列出了可用的模式表:

序号 模式及描述
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]';
广告
© . All rights reserved.