REGEXP正则匹配
利用正则表达式进行灵活的模式匹配,超越LIKE的限制。 · 难度:入门 · +15XP
SQL REGEXP —— 正则表达式匹配
LIKE只能做简单的通配符匹配。REGEXP(或RLIKE)支持完整的正则表达式,让你对文本做强大的模式匹配。
基本语法
SELECT * FROM users WHERE email REGEXP '^[a-z]+@gmail\.com$';
SELECT * FROM products WHERE name REGEXP 'iPhone|iPad|MacBook';
常用模式
| 模式 | 含义 | 示例 |
|---|---|---|
| ^ | 开头 | REGEXP '^张' —— 以张开头 |
| $ | 结尾 | REGEXP 'com$' —— 以com结尾 |
| | | 或者 | REGEXP '北京|上海' |
| [abc] | 字符集 | REGEXP '^[ABC]' —— 以A/B/C开头 |
| [0-9] | 数字 | REGEXP '[0-9]{11}' —— 11位数字(手机号) |
动手练习
- 基础练习:用REGEXP查找所有gmail和outlook邮箱的用户。
- 进阶应用:用REGEXP验证手机号格式(1开头的11位数字)。
- 项目实战:在数据清洗中,用REGEXP找出不符合格式的记录。