刚开始学习MySQL,在大多数教材当中都有对MySQL当中的对正则表达式有简单的介绍,其中有一条是:
匹配字符类:
值中存在经常使用的数字、所有字母或所有数字字母字符的匹配,可以使用预定义的字符集,称为字符类:
[:blank:] 空格和制表(同 [\t])
我的问题是[:blank:]字符类在平常项目当中是如何使用的,我在自己尝试了一些代码后,运行效果不是我自己想象的那样。
SELECT 'a' REGEXP '[:blank:]';
SELECT 'b' REGEXP '[:blank:]';
SELECT 'c' REGEXP '[:blank:]';
SELECT 'd' REGEXP '[:blank:]';
SELECT 'e' REGEXP '[:blank:]';
1
1
0
0
0
为什么包含某些字母(如a,b)的字符串会导致包含空格和制表?
他是不是认为你括号中的数据了。
b和a都在你的blank里。而其他没有哦
这是正确的语法
SELECT 'a ' REGEXP '[[:blank:]]';
SELECT 'b ' REGEXP '[[:blank:]]';
SELECT 'c ' REGEXP '[[:blank:]]';
SELECT 'd ' REGEXP '[[:blank:]]';
SELECT 'e ' REGEXP '[[:blank:]]';
你的语法中缺少了中括号
应该是被解析成 匹配正则中存不存在 :blank: 这些字符了。