REGEXP 或正则表达式 是定义搜索模式的字符序列。它用于检查表达式是否包含指定的搜索模式。
除了LIKE和NOT LIKE运算符之外,MariaDB还支持另一种基于REGEXP函数和运算符的模式匹配操作。
MariaDB REGEXP 函数和运算符
以下是 MariaDB 支持的 REGEXP 函数和运算符的列表:
Name | Description |
---|---|
NOT REGEXP | REGEXP 的否定 |
NOT RLIKE | RLIKE 的否定 |
REGEXP | 用于检查字符串是否与正则表达式匹配 |
REGEXP_INSTR() | 匹配正则表达式的子串的起始索引 |
REGEXP_REPLACE() | 替换匹配正则表达式的子字符串 |
REGEXP_SUBSTR() | 返回匹配正则表达式的子串 |
RLIKE | 用于检查字符串是否与正则表达式匹配 |
正则表达式模式
以下是表格模式语法,可与 REGEXP 函数和运算符一起使用。
正则表达式模式
符号 | 描述 |
---|---|
^ | 匹配字符串的开头。 |
$ | 匹配字符串的结尾字符串。 |
* | 匹配零次或多次出现。 |
+ | 匹配一次或多次出现。 |
? | 匹配零次或一次出现。 |
. | 匹配除 NULL 之外的任何字符。 |
| | 像"OR"一样使用来指定多个替代字符。 |
[ ] | 匹配 [] 内指定的任何单个字符。 |
[^ ] | 匹配 [] 内未指定的任何单个字符。 |
- | 表示字符范围。 |
( ) | 用于将表达式分组为子表达式。 |
{m} | 匹配 m |
{m,} | 匹配至少 m 次。 |
{m,n} | 匹配至少 m 次,但不超过 n 次。 |
\n | n 是 1 到 9 之间的数字。匹配找到的第 n 个子表达式在 ( ) 内遇到 \n 之前。 |
\d | 匹配数字字符。 |
\D | 匹配非数字字符。 |
\w | 匹配单词字符。 |
\W | 匹配非单词字符。 |
\s | 匹配空白字符。 |
\s | 匹配空白字符。 |
\S | 匹配非空白字符。 |
*? | 匹配前面的模式出现零次或多次。 |
+? | 匹配前面的模式出现一次或多次。 |
?? | 匹配前面的模式零次或一次出现。 |
? | 匹配前面的模式n 次。 |
? | 与前面的模式匹配至少 n 次。 |
? | 匹配前面的模式至少 n 次,但不超过 m 次。 |
[..] | 匹配一种排序规则可以是多个字符的元素。 |
[=character_class=] | 表示一个等价类。它匹配具有相同排序值的所有字符,包括其自身。 |
[:character_class:] | 表示匹配属于该字符的所有字符的字符类 |
标准类列表名称
字符类名称 | 含义 |
---|---|
alnum | 字母数字字符 |
alpha | 字母字符 |
blank | 空白字符 |
cntrl | 控制字符 |
digit | 数字字符 |
graph | 图形字符 |
lower | 小写字母字符 |
图形或空格字符 | |
punct | 标点符号 |
space | 空格、制表符、换行符和回车符 |
upper | 大写字母字符 |
xdigit | 十六进制数字字符 |