[TOC]
正则表达式
正则表达式设计
基本语法
- 在Mysql中,REGEXP和RELIKE是用于正则表达式匹配的操作符,两者功能相同,可以互换使用。 示例
SELECT * FROM table_name WHERE column_name REGEXP 'pattern'; -- 或者使用RLIKE SELECT * FROM table_name WHERE column_name RLIKE 'pattern';
常见的正则表达式
1.字符类
元字符 含义 示例 .匹配任意单个字符 a.b匹配a后面跟着任何字符,再跟着b,如a1b、a-b[abc]匹配方括号内的任意一个字符 [abc]匹配a、b或c[^ abc]匹配不在方括号内的任意一个字符 [^abc]匹配除a、b和c之外的任何字符[a-z]匹配指定范围内的任意一个字符 [a-z]匹配任何小写字母[A-Z]匹配指定范围内的任意一个字符 [A-Z]匹配任何大写字母[0-9]匹配任何数字 [0-9]匹配任何单个数字
2.预定义字符类
预定义字符 含义 等价写法 \d匹配任何数字 [0-9]\D匹配任何非数字字符 ^[0-9]\s匹配任何空白字符,包括空格、制表、换行符等 [ \t\r\n\f]\S匹配任何非空白字符 [ ^ \t\r\n\f]\w匹配任何字母数字字符 [a-zA-Z0-9]\W匹配任何非字母数字字符 [^ a-zA-Z0-9]
3.边界匹配
边界字符 含义 示例 ^匹配字符串开头 ^abc匹配abc...$$匹配字符串结尾 xyz$匹配...xyz\b匹配单词边界 \bword\b匹配完整的单词word
4.量词
量词字符 含义 示例 *匹配前面的字符0次或多次 a*匹配'',a,aa+匹配前面的字符1次或多次 a+匹配a,aa?匹配前面的字符0次或1次 colou?r匹配color或colour{n}匹配前面的字符恰好n次 a{3}匹配恰好 3 个a,如aaa{n,}匹配前面的字符至少n次 a{3,}匹配 3 个或更多a,如aaa、aaaa{n,m}匹配前面的字符至少n次,但不超过m次 a{2,4}匹配 2 到 4 个a,如aa、aaa、aaaa
5.分组和捕获
字符 含义 示例 ()匹配分组并捕获 (abc)匹配abc,并捕获匹配的内容(?:...)非捕获分组,匹配但不捕获匹配的内容 (?:abc)匹配abc,但不捕获匹配的内容
6.选择
字符 含义 示例 \|匹配多个模式中的一个 abc\|def匹配abc或def
7.断言
字符 含义 示例 (?=...)正前瞻断言,匹配后面跟着指定模式的字符 abc(?=def)匹配abc,但只有在其后面跟着def时才匹配(?!...)负前瞻断言,匹配后面不跟着指定模式的字符 abc(?!def)匹配abc,但只有在其后面不跟着def时才匹配(?<=...)正后顾断言,匹配前面跟着指定模式的字符 (?<=abc)def匹配def,但只有在其前面跟着abc时才匹配(?<!...)负后顾断言,匹配前面不跟着指定模式的字符 (?<!abc)def匹配def,但只有在其前面不跟着abc时才匹配
- THE END -
最后修改:2025年8月1日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.qian777.cn/35.html
共有 0 条评论