截图来自《Mysql必知必会》
注意 这里匹配字符类指的是形式,使用时一般在[]中使用 ,即[[:digit:]]
例如:[:digit:] 指的是数字这个形式,而再加个[ ] 表示有一个字符,这个字符是数字形式的,即[[:digit:]]。
下面我们从具体例子深入理解一下。
从分析我们可以知道 这个正则表达式是用于匹配包含连续4位数字的
{n}是重复元字符,相关重复元字符如下。
注意 重复元字符放在一个符号之后
例如:
SELECT phone FROM user WHERE phone REGEXP '6{2}';
检索出包含 连续2个6的电话。
我们再看回上面的那张截图,[:digit:]表示数字形式,[[:digit:]]表示一个数字字符,在字符后面可以加 重复元字符 ,则 [[:digit:]]{4}表示4位连续的数字。
下面我们再举一个复杂的例子:
SELECT '2jsdh1234e' REGEXP '[[:lower:]]+[[:digit:]]+[[:lower:]]+';
这里我们用到了正则表达式的一种 测试方法
在这个例子中,查看‘2jsdh1234e’ 这段字符是否包含 以小写字母若干(至少为1)数字若干小写字母若干排列下来的数据
我们来分析一下:[:lower:]表示小写字母形式,[:digit:]表示数字形式,[[:lower:]]+ 表示匹配1个或多个小写字母字符,同理[:digit:]+ 匹配1个或多个数字字符,则 ‘[[:lower:]]+[[:digit:]]+[[:lower:]]+’ 表示匹配小写字母数字小写字母的数据。最后显然是可以检索到的,即显示将返回1