函数 |
说明 |
返回值 |
||||||||||||
NOT REGEXP |
正则表达式的否定 可选的 match_type 参数是一个字符串,其中可能包含指定如何执行匹配的以下任何或所有字符:
|
如果字符串 expr 与模式 pat 指定的正则表达式不匹配,则返回 1,否则返回 0。 如果 expr 或 pat 为 NULL,则返回值为 NULL。 |
||||||||||||
REGEXP |
字符串是否与正则表达式匹配 可选的 match_type 参数是一个字符串,其中可能包含指定如何执行匹配的以下任何或所有字符:
|
如果字符串 expr 与模式 pat 指定的正则表达式匹配,则返回 1,否则返回 0。 如果 expr 或 pat 为 NULL,则返回值为 NULL。 |
||||||||||||
REGEXP_INSTR() |
与正则表达式匹配的子字符串的起始索引
|
返回与模式 pat 指定的正则表达式匹配的字符串 expr 的子字符串的起始索引,如果不匹配,则返回 0。 如果 expr 或 pat 为 NULL,则返回值为 NULL。字符索引从 1 开始。 |
||||||||||||
REGEXP_LIKE() |
字符串是否与正则表达式匹配 可选的 match_type 参数是一个字符串,其中可能包含指定如何执行匹配的以下任何或所有字符:
|
如果字符串 expr 与模式 pat 指定的正则表达式匹配,则返回 1,否则返回 0。 如果 expr 或 pat 为 NULL,则返回值为 NULL。 |
||||||||||||
REGEXP_REPLACE() |
替换与正则表达式匹配的子字符串
|
用替换字符串 repl 替换字符串 expr 中匹配由模式 pat 指定的正则表达式的匹配项,并返回结果字符串。 如果 expr、pat 或 repl 为 NULL,则返回值为 NULL。 |
||||||||||||
REGEXP_SUBSTR() |
返回匹配正则表达式的子字符串
|
返回与模式 pat 指定的正则表达式匹配的字符串 expr 的子字符串,如果没有匹配则返回 NULL。如果 expr 或 pat 为 NULL,则返回值为 NULL。 |
||||||||||||
RLIKE |
字符串是否与正则表达式匹配 可选的 match_type 参数是一个字符串,其中可能包含指定如何执行匹配的以下任何或所有字符:
|
果字符串 expr 与模式 pat 指定的正则表达式匹配,则返回 1,否则返回 0。 如果 expr 或 pat 为 NULL,则返回值为 NULL。 |
注
- 在 MySQL 8.0.22 之前,可以对这些函数使用二进制字符串参数,但它们会产生不一致的结果。在 MySQL 8.0.22 及更高版本中,使用任何 MySQL 正则表达式函数的二进制字符串都会被 ER_CHARACTER_SET_MISMATCH 拒绝
示例
mysql> SELECT 'Michael!' REGEXP '.*';
+--------------------------+
|'Michael!' REGEXP '.*' |
+--------------------------+
| 1 |
+--------------------------+
mysql> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
+---------------------------------------------+
|'new*\n*line' REGEXP 'new\\*.\\*line' |
+---------------------------------------------+
| 0 |
+---------------------------------------------+
mysql> SELECT 'a' REGEXP '^[a-d]';
+-----------------------+
|'a' REGEXP '^[a-d]' |
+-----------------------+
| 1 |
+---------------------+
示例
mysql> SELECT REGEXP_INSTR('dog cat dog', 'dog');
+-------------------------------------------+
|REGEXP_INSTR('dog cat dog', 'dog') |
+-------------------------------------------+
| 1 |
+-------------------------------------------+
mysql> SELECT REGEXP_INSTR('dog cat dog', 'dog', 2);
+----------------------------------------------+
|REGEXP_INSTR('dog cat dog', 'dog', 2) |
+----------------------------------------------+
| 9 |
+----------------------------------------------+
mysql> SELECT REGEXP_INSTR('aa aaa aaaa', 'a{2}');
+-------------------------------------------+
|REGEXP_INSTR('aa aaa aaaa', 'a{2}') |
+-------------------------------------------+
| 1 |
+-------------------------------------------+
mysql> SELECT REGEXP_INSTR('aa aaa aaaa', 'a{4}');
+-------------------------------------------+
|REGEXP_INSTR('aa aaa aaaa', 'a{4}') |
+-------------------------------------------+
| 8 |
+-------------------------------------------+
示例
mysql> SELECT REGEXP_LIKE('CamelCase', 'CAMELCASE');
+--------------------------------------------------+
|REGEXP_LIKE('CamelCase', 'CAMELCASE') |
+--------------------------------------------------+
| 1 |
+--------------------------------------------------+
mysql> SELECT REGEXP_LIKE('CamelCase', 'CAMELCASE' COLLATE utf8mb4_0900_as_cs);
+---------------------------------------------------------------------------------------+
|REGEXP_LIKE('CamelCase', 'CAMELCASE' COLLATE utf8mb4_0900_as_cs) |
+---------------------------------------------------------------------------------------+
| 0 |
+---------------------------------------------------------------------------------------+
示例
mysql> SELECT REGEXP_LIKE('Michael!', '.*');
+-----------------------------------+
|REGEXP_LIKE('Michael!', '.*') |
+-----------------------------------+
| 1 |
+-----------------------------------+
mysql> SELECT REGEXP_LIKE('new*\n*line', 'new\\*.\\*line');
+-----------------------------------------------------+
|REGEXP_LIKE('new*\n*line', 'new\\*.\\*line') |
+-----------------------------------------------------+
| 0 |
+-----------------------------------------------------+
mysql> SELECT REGEXP_LIKE('a', '^[a-d]');
+--------------------------------+
|REGEXP_LIKE('a', '^[a-d]') |
+--------------------------------+
| 1 |
+--------------------------------+
示例
mysql> SELECT REGEXP_LIKE('abc', 'ABC');
+--------------------------------+
|REGEXP_LIKE('abc', 'ABC') |
+--------------------------------+
| 1 |
+--------------------------------+
mysql> SELECT REGEXP_LIKE('abc', 'ABC', 'c');
+-------------------------------------+
|REGEXP_LIKE('abc', 'ABC', 'c') |
+-------------------------------------+
| 0 |
+-------------------------------------+
示例
mysql> SELECT REGEXP_REPLACE('a b c', 'b', 'X');
+----------------------------------------+
|REGEXP_REPLACE('a b c', 'b', 'X') |
+----------------------------------------+
|a X c |
+----------------------------------------+
mysql> SELECT REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X', 1, 3);
+----------------------------------------------------------+
|REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X', 1, 3) |
+----------------------------------------------------------+
|abc def X |
+----------------------------------------------------------+