25、MySQL 中使用正则表达式
使用REGEXP正则表达式查询
以 student 表为例,使用正则表达式查询出姓王的教师:
SELECT * FROM student WHERE name REGEXP '^王';
name REGEXP '^王'
表示选择以王开头的数据
使用正则表达式查询 name 字段中包含小字的数据:
SELECT * FROM student WHERE name REGEXP '小';
以 teacher 表为例,使用正则表达式匹配符合邮箱格式的数据:
SELECT * FROM teacher WHERE email REGEXP '^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$';
常用正则表达式
11手机号正则表达式:
^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$
域名网址正则表达式
^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*$
日期+时间正则表达式
^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$