MySQL数据库开发:数据库操作DQL正则表达式
前言:
正则表达式(regular expression)描写了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描写、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。
MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。
SELECT ‘abc’ REGEXP ‘^a’; — 1
— $ 在字符串末尾开始匹配
SELECT ‘abc’ REGEXP ‘a$’; — 0
SELECT ‘abc’ REGEXP ‘c$’; — 1
— . 匹配任意字符
SELECT ‘abc’ REGEXP ‘.b’; — 1
SELECT ‘abc’ REGEXP ‘.c’; — 1
SELECT ‘abc’ REGEXP ‘a.’; — 1
— […] 匹配括号内的任意单个字符
SELECT ‘abc’ REGEXP ‘[xyz]’; — 0
SELECT ‘abc’ REGEXP ‘[xaz]’; — 1
返回值为1就代表匹配到了,如果返回值为0就代表不能匹配
SELECT ‘a’ REGEXP ‘[^abc]’;– 0
SELECT ‘x’ REGEXP ‘[^abc]’;– 1
SELECT ‘abc’ REGEXP ‘[^a]’;– 1
使用[^]则代表的是,不能匹配到,那末有些人肯定会疑问,为何最后一个却匹配到了,虽然里面包括a,但是[^a]代表的是,除a,里面还有其他的,也能够匹配成功,这里其实触及到了一个单词中的全匹配和局部匹配。
负值字符集合。匹配未包括的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'
SELECT ‘stab’ REGEXP ‘.ta*b’;
SELECT ‘stb’ REGEXP ‘.ta*b’;
SELECT ” REGEXP ‘a*’;
注意这里的*是0个或多个,所以最后一个返回的是1
SELECT ‘stab’ REGEXP ‘.ta+b’;
SELECT ‘stb’ REGEXP ‘.ta+b’;
注意这里的+是1个或多个
SELECT ‘stb’ REGEXP ‘.ta?b’;
SELECT ‘stab’ REGEXP ‘.ta?b’;
SELECT ‘staab’ REGEXP ‘.ta?b’;
— a1|a2 匹配a1或a2,
SELECT ‘a’ REGEXP ‘a|b’;
SELECT ‘b’ REGEXP ‘a|b’;
SELECT ‘b’ REGEXP ‘^(a|b)’;
SELECT ‘a’ REGEXP ‘^(a|b)’;
SELECT ‘c’ REGEXP ‘^(a|b)’;
— a{m} 匹配m个a
SELECT ‘auuuuc’ REGEXP ‘au{4}c’;
SELECT ‘auuuuc’ REGEXP ‘au{3}c’;
注意这里的?是0个或1个,标准的名字叫做非贪婪模式
SELECT ‘auuuuc’ REGEXP ‘au{3,5}c’;
SELECT ‘auuuuc’ REGEXP ‘au{4,5}c’;
SELECT ‘auuuuc’ REGEXP ‘au{5,10}c’;
— (abc) abc作为一个序列匹配,不用括号括起来都是用单个字符去匹配,如果要把多个字符作为一个整体去匹配就需要用到括号,所以括号合适上面的所有情况。
SELECT ‘xababy’ REGEXP ‘x(abab)y’;
SELECT ‘xababy’ REGEXP ‘x(ab)*y’;
SELECT ‘xababy’ REGEXP ‘x(ab){1,2}y’;
一般的实际利用场景,通过正则表达式可以对文本进行匹配,这比之前的like关键字要智能的多,利用场景也是比较的广,所以需要熟习它的语法标准:
select 字段 regexp '正则表达式' as 命名 from 表 ……
到此这篇关于MySQL数据库操作DQL正则表达式的文章就介绍到这了,更多相关MySQL数据库操作DQL 内容请搜索之前的文章或继续浏览下面的相关文章希望大家以后多多支持!
文章来源:丸子建站
文章标题:MySQL数据库开发:数据库操作DQL正则表达式
https://www.wanzijz.com/view/88317.html