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 也不区分大小写,二进制字符串除外。
下面给出了可以使用的可能模式表 –
Sr.No | 图案和描述 |
---|---|
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]';