MariaDB 正则表达式

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程