MySQL REGEXP_LIKE() 函数使用指南

MySQL REGEXP_LIKE() 函数检查一个字符串是否和一个正则表达式是否匹配。

REGEXPRLIKE 操作符等同于 REGEXP_LIKE() 函数。

默认情况下, REGEXP_LIKE() 函数执行不区分大小写的匹配。

REGEXP_LIKE() 语法

这里是 MySQL REGEXP_LIKE() 的语法:

REGEXP_LIKE(str, regexp)
REGEXP_LIKE(str, regexp, mode)

参数

str
必需的。一个字符串。
regexp
必需的。正则表达式。
mode
可选的。执行匹配采用的模式。

匹配模式可以使用下面值中的一个或多个:

  • c: 区分大小写
  • i: 区分大小写
  • m: 多行匹配模式
  • n: 点 . 可以匹配行结束
  • u: 仅限 unix 行结尾

如果匹配模式存在矛盾的选项,则以最右边的为准。

返回值

如果字符串 str 和正则表达式 regexp 匹配, REGEXP_LIKE() 返回 1,否则 REGEXP_LIKE() 返回 0

如果 str 或者 regexpNULLREGEXP_LIKE() 将返回 NULL

REGEXP_LIKE() 示例

这里列出了几个常见的 REGEXP_LIKE() 示例。

SELECT
    REGEXP_LIKE('hello', '^[a-z]+$'),
    REGEXP_LIKE('hello', '^[A-Z]+$'),
    REGEXP_LIKE('12345', '[0-9]+$'),
    REGEXP_LIKE('12345', '^\\d+$'),
    REGEXP_LIKE('123ab', '^\\d*$'),
    REGEXP_LIKE('123ab', '^.*$')\G
     REGEXP_LIKE('hello', '^[a-z]+$'): 1
     REGEXP_LIKE('hello', '^[A-Z]+$'): 1
      REGEXP_LIKE('12345', '[0-9]+$'): 1
       REGEXP_LIKE('12345', '^\\d+$'): 1
       REGEXP_LIKE('123ab', '^\\d*$'): 0
         REGEXP_LIKE('123ab', '^.*$'): 1

区分大小写

您可以将匹配模式设置为 'c' 来启用匹配时区分大小写。

SELECT REGEXP_LIKE('hello', '^[A-Z]+$', 'c');
+---------------------------------------+
| REGEXP_LIKE('hello', '^[A-Z]+$', 'c') |
+---------------------------------------+
|                                     0 |
+---------------------------------------+