MariaDB REGEXP() 函数的基础用法与实例

MariaDB REGEXP 操作符用来执行字符串表达式 expr 与模式 pat 之间的模式匹配。

发布于

MariaDB REGEXP 操作符用来执行字符串表达式 expr 与模式 pat 之间的模式匹配。该模式可以是扩展的正则表达式。正则表达式提供了一种强大的方式来进行复杂的模式匹配和数据验证。

语法

MariaDB REGEXP 操作符的语法如下:

expr REGEXP pat

或者使用同义词 RLIKE

expr RLIKE pat

其中,expr 是要进行匹配的字符串表达式,pat 是正则表达式模式。

实例

基本匹配

以下实例展示了如何检查一个字符串是否包含数字。

SELECT '123' REGEXP '\\d+' AS match_result;

以下是该语句的输出:

+--------------+
| match_result |
+--------------+
|            1 |
+--------------+

这个例子中,返回值 1 表示字符串匹配了模式。

不匹配的情况

以下实例展示了一个不匹配的情况。

SELECT 'abc' REGEXP '\\d+' AS match_result;

以下是该语句的输出:

+--------------+
| match_result |
+--------------+
|            0 |
+--------------+

这个例子中,返回值 0 表示字符串没有匹配模式。

使用 NOT REGEXP

以下实例展示了如何使用 NOT REGEXP 来找出不匹配的字符串。

SELECT 'abc' NOT REGEXP '\\d+' AS match_result;

以下是该语句的输出:

+--------------+
| match_result |
+--------------+
|            1 |
+--------------+

这个例子中,返回值 1 表示字符串没有匹配模式,因此 NOT REGEXP 返回真。

从表中查询

假设我们有一个 users 表,其中包含用户名。以下实例展示了如何从表中查询用户名中包含数字的用户。

DROP TABLE IF EXISTS users;
CREATE TABLE users (username VARCHAR(100));
INSERT INTO users VALUES ('john_doe'), ('jane123'), ('bob');

SELECT username FROM users WHERE username REGEXP '\\d+';

以下是该语句的输出:

+----------+
| username |
+----------+
| jane123  |
+----------+

这个例子中,只有包含数字的用户名被选中。

匹配特定位置的模式

以下实例展示了如何匹配字符串开头的模式。

SELECT '123abc' REGEXP '^\\d+' AS match_result;

以下是该语句的输出:

+--------------+
| match_result |
+--------------+
|            1 |
+--------------+

这个例子中,^ 符号指定了模式必须出现在字符串的开头。

相关函数

以下是几个与 MariaDB REGEXP 相关的几个函数:

  • MariaDB REGEXP_SUBSTR() 函数用来从字符串中提取匹配正则表达式的部分。
  • MariaDB REGEXP_INSTR() 函数用来返回匹配正则表达式的字符串的起始位置。
  • MariaDB REGEXP_REPLACE() 函数用来执行正则表达式的搜索和替换操作。

结论

REGEXP 操作符是 MariaDB 中处理字符串匹配的一个强大工具。它可以用于验证数据格式、搜索特定模式或从文本中提取信息。掌握 REGEXP 的使用,可以在数据库查询中实现更高级的数据筛选和处理。在使用时,需要注意转义字符和大小写敏感性的问题。