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]';