REGEXP_LIKE()
函数说明
REGEXP_LIKE()
用于判断指定的字符串是否与提供的正则表达式模式匹配。如果字符串符合模式,函数返回 TRUE
,否则返回 FALSE
。它的工作方式类似于 REGEXP
操作符,但是它可以接受第三个可选参数 match_type
,用于定义匹配的行为。
REGEXP 和 RLIKE 是 REGEXP_LIKE()
的同义词。
语法
> REGEXP_LIKE(expr, pat[, match_type])
参数释义
expr
是要搜索的字符串。pat
是要在字符串中查找的正则表达式。match_type
参数是一个可选的字符串,用于指定匹配的方式。这个参数可以由以下字符构成,每个字符指定一种匹配方式,字符的顺序不影响结果:'c'
:区分大小写进行匹配(即,大写和小写字母被视为不同的字符)。默认情况下,匹配区分大小写。'i'
:不区分大小写进行匹配(即,大写和小写字母被视为相同的字符)。'n'
:允许.
符号匹配换行符。默认情况下,.
符号不会匹配换行符。'm'
:将字符串视为多行。即,^
匹配字符串的开头或任何行的开头,$
匹配字符串的结尾或任何行的结尾。默认情况下,^
只匹配字符串的开头,$
只匹配字符串的结尾。'u'
:将模式视为 UTF-8 字符串。默认情况下,模式视为字节字符串。
示例
mysql> SELECT REGEXP_INSTR('Hello, my number is 12345.', '[0-9]+');
+--------------------------------------------------+
| regexp_instr(Hello, my number is 12345., [0-9]+) |
+--------------------------------------------------+
| 21 |
+--------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT REGEXP_INSTR('apple', 'z+');
+-------------------------+
| regexp_instr(apple, z+) |
+-------------------------+
| 0 |
+-------------------------+
1 row in set (0.00 sec)
mysql> SELECT REGEXP_LIKE('CamelCase', 'CAMELCASE');
+-----------------------------------+
| regexp_like(CamelCase, CAMELCASE) |
+-----------------------------------+
| false |
+-----------------------------------+
1 row in set (0.01 sec)
mysql> SELECT REGEXP_LIKE('CamelCase', 'CAMELCASE', 'i');
+--------------------------------------+
| regexp_like(CamelCase, CAMELCASE, i) |
+--------------------------------------+
| true |
+--------------------------------------+
1 row in set (0.01 sec)