-- 判断是不是以a开头
select 'abc' regexp '^a'; -- 1

-- 判断是不是以c结尾 a开头 
select 'abc' regexp '^a','abc' regexp 'c$'; -- 1 1

-- 匹配任意字符
select 'abc' regexp '.a'; -- 0
select 'abc' regexp '.b';-- 1
select 'abc' regexp '..c';-- 1
select 'abc' regexp '.b.';-- 1
select 'abc' regexp 'a..';-- 1


-- []    匹配括号内"任意"单个字符
select 'abc' regexp '[xyz]';-- 0
select 'abc' regexp '[ab]';-- 1
select 'abc' regexp '[ac]';-- 1

-- ^    在[]是取反  除了abc是否有别的
select 'abc' regexp '[^abc]'; -- 0
select 'xyz' regexp '[^abc]'; -- 1    def-xyz
select 'abc' regexp '[^a]'; -- 1         bc-xyz

-- *    出现0个或多个
select 'stab' regexp '.ta*b'; -- .tb .tab .taab .ta...b
select 'stb' regexp '.ta*b';
select '' regexp 'a*'; -- 1 
select 'stb' regexp '.(ta)*b'; -- 1

-- +     一个或多个
select 'stab' regexp '.ta+b'; -- 1
select 'stb' regexp '.ta+b'; -- 0


-- ?     匹配0个或1个
select 'stab' regexp '.ta?b'; -- 1
select 'staab' regexp '.ta?b'; -- 0


-- |     或
select 'abc' regexp 'a|b'; -- 1
select 'abc' regexp '^(a|b)'; -- 1


-- 匹配{    }个

select 'abbbc' regexp 'ab{3}c'; -- 1
select 'abbbc' regexp 'ab{4}c'; -- 0


-- {}    匹配范围
select 'abbbc' regexp 'ab{3,5}c'; -- 1
select 'abbbbbc' regexp 'ab{3,5}c'; -- 1
select 'abbc' regexp 'ab{3,5}c'; -- 0


-- ()    序列匹配
select 'abbbc' regexp 'a(bbb)c'; -- 1
select 'abbbc' regexp 'a(bb)c'; -- 0
select 'abbbc' regexp 'a(bb)bc'; -- 1
select 'abbbc' regexp 'a(bb){1,3}c'; -- 0
select 'abbbbc' regexp 'a(bb){1,3}c'; -- 1

-- a开头
select 'abcdefg' regexp '^a'; -- 1

-- g结尾
select 'abcdefg' regexp 'g$'; -- 1


select 'abcdefg' regexp '.f'; -- 1

select 'abcdefg' regexp '.h'; -- 0

select 'abcdefg' regexp '[hfk]'; -- 1

select 'efg' regexp '[^XYZ]','X' regexp '[^XYZ]'; -- 1 0


select '1234dfd2222229@163.com' regexp "[A-zA-Z0-9]@{1}(163){1}.(com){1}"; 

select '123456789@163.com' regexp "[A-zA-Z0-9._%+-]+@163.com"; 

select '13587994569' regexp '^1[3,9]\\d{9}$';
最后修改:2024 年 05 月 30 日
如果觉得我的文章对你有用,请随意赞赏