当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL REGEXP_LIKE方法用法及代码示例


如果输入字符串与正则表达式 pat 匹配,MySQL 的 REGEXP_LIKE(~) 方法将返回 1。如果没有匹配则返回 0。

参数

1. expr | string

要检查是否与正则表达式模式匹配的字符串。

2. pat | regular expression

用于匹配的正则表达式模式。

3. match_type | string | optional

指定如何执行匹配。可以指定多个匹配类型,但是,如果提供的匹配类型之间存在矛盾,则右侧的匹配类型优先。

match_type

意义

c

区分大小写的匹配

i

不区分大小写的匹配

m

Multiple-line模式。识别字符串中的行终止符。默认行为是仅在字符串表达式的开头和结尾匹配行终止符。

n

. 字符匹配行终止符。 . 匹配默认停在行尾。

u

Unix-only 行结尾。仅换行符被识别为以 .^$ 匹配运算符结尾的行。

例子

考虑下表有关一些学生的信息:

student_id

名称

名字

day_enrolled

年龄

用户名

1

Sky

Towner

2015-12-03

17

stowner1

2

Ben

Davis

2016-04-20

19

bdavis2

3

Travis

Apple

2018-08-14

18

tapple3

4

Arthur

David

2016-04-01

16

adavid4

5

Benjamin

Town

2014-01-01

17

btown5

可以使用此处的代码创建上述示例表。

返回值

返回值取决于以下情况:

案子

返回值

输入字符串与正则表达式模式匹配

1

输入字符串与正则表达式模式不匹配

0

基本用法

检查学生姓氏是否与正则表达式模式 '[ae]' 匹配:

SELECT lname, REGEXP_LIKE(lname,'[ae]')
FROM students;



+--------+---------------------------+
| lname  | REGEXP_LIKE(lname,'[ae]') |
+--------+---------------------------+
| Towner |                         1 |
| Davis  |                         1 |
| Apple  |                         1 |
| David  |                         1 |
| Town   |                         0 |
+--------+---------------------------+

只有 'Town' 返回 0,因为它不包含 'a''e'

匹配类型参数

要通过指定匹配类型 'c' 执行区分大小写的匹配:

SELECT REGEXP_LIKE('ABC DEF GHI', '[a-z]+', 'c');



+-------------------------------------------+
| REGEXP_LIKE('ABC DEF GHI', '[a-z]+', 'c') |
+-------------------------------------------+
|                                         0 |
+-------------------------------------------+

大写字符串 'ABC DEF GHI' 与正则表达式 '[a-z]+' 不匹配,因为匹配区分大小写。

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | REGEXP_LIKE method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。