Mysql 正则匹配字符类

Mysql 正则匹配字符类_第1张图片
截图来自《Mysql必知必会》

注意 这里匹配字符类指的是形式,使用时一般在[]中使用 ,即[[:digit:]]

例如:[:digit:] 指的是数字这个形式,而再加个[ ] 表示有一个字符,这个字符是数字形式的,即[[:digit:]]。

下面我们从具体例子深入理解一下。

Mysql 正则匹配字符类_第2张图片

从分析我们可以知道 这个正则表达式是用于匹配包含连续4位数字

{n}是重复元字符,相关重复元字符如下。

Mysql 正则匹配字符类_第3张图片

注意 重复元字符放在一个符号之后

例如:

SELECT phone FROM user WHERE phone REGEXP '6{2}';

检索出包含 连续2个6的电话。

我们再看回上面的那张截图,[:digit:]表示数字形式,[[:digit:]]表示一个数字字符,在字符后面可以加 重复元字符 ,则 [[:digit:]]{4}表示4位连续的数字。

下面我们再举一个复杂的例子:

SELECT '2jsdh1234e' REGEXP '[[:lower:]]+[[:digit:]]+[[:lower:]]+';

这里我们用到了正则表达式的一种 测试方法

Mysql 正则匹配字符类_第4张图片
在这个例子中,查看‘2jsdh1234e’ 这段字符是否包含 以小写字母若干(至少为1)数字若干小写字母若干排列下来的数据

我们来分析一下:[:lower:]表示小写字母形式,[:digit:]表示数字形式,[[:lower:]]+ 表示匹配1个或多个小写字母字符,同理[:digit:]+ 匹配1个或多个数字字符,则 ‘[[:lower:]]+[[:digit:]]+[[:lower:]]+’ 表示匹配小写字母数字小写字母的数据。最后显然是可以检索到的,即显示将返回1

你可能感兴趣的:(mysql)