MySQL正则表达式
来源:互联网 发布:程序员面试笔试宝典 编辑:程序博客网 时间:2024/05/22 11:54
**只能用来匹配字符串**
基本字符匹配
- regexp在这时与Like有点类似
- regexp的作用在于告诉MySQL:后面的是正则表达式
//Like与REGEXP的差别:Like在列值中进行匹配,完全相等的值出现Like不会返回,而REGEXP会进行返回,这是二者最主要的差别。mysql> select * from user where name like 'wang';+----+------+| id | name |+----+------+| 3 | wang |+----+------+1 row in set (0.00 sec)mysql> select * from user where name regexp 'wang';+----+----------+| id | name |+----+----------+| 3 | wang || 7 | wanggggg || 73 | wang. |+----+----------+3 rows in set (0.00 sec)
mysql> select * from user where name regexp 'wang';+----+----------+| id | name |+----+----------+| 3 | wang || 7 | wanggggg |+----+----------+2 rows in set (0.00 sec)
进行OR匹配
mysql> select * from user where name regexp 'wang|user';+----+----------+| id | name |+----+----------+| 1 | user1 || 3 | wang || 4 | user4 || 5 | user5 || 7 | wanggggg |+----+----------+5 rows in set (0.00 sec)
匹配几个字符之一
- “[ ]”其实是另一种形式的“|”语句。
形式一:
mysql> select * from user where name regexp 'user[12345]';+----+-------+| id | name |+----+-------+| 1 | user1 || 4 | user4 || 5 | user5 |+----+-------+3 rows in set (0.00 sec)
形式二:
Database changedmysql> select * from user where name regexp 'user 1|2|3|4|5';+----+-------+| id | name |+----+-------+| 4 | user4 || 5 | user5 |+----+-------+2 rows in set (0.00 sec)
取反操作:
mysql> select * from user where name regexp 'user[^123]';+----+-------+| id | name |+----+-------+| 4 | user4 || 5 | user5 |+----+-------+2 rows in set (0.00 sec)
匹配范围
- “[0-9]”或”[a-z]”都可以。
mysql> select * from user where name regexp 'user[1-9]';+----+-------+| id | name |+----+-------+| 1 | user1 || 4 | user4 || 5 | user5 |+----+-------+3 rows in set (0.00 sec)
匹配特殊字符
- 与C++类似,MySQL正则表达式也有转义字符,只不过需要在开头添加“\”并在后面接上字符表示转义。
mysql> select * from user where name regexp 'wang\\.';+----+-------+| id | name |+----+-------+| 73 | wang. |+----+-------+1 row in set (0.00 sec)
匹配字符类
- [:alnum:] 匹配任意字母和数字
- [:alpha:] 匹配任意字符
- [:digit:]匹配任意数字
- [:lower:]匹配任意小写字母
- [:upper:]匹配任意大写字母
mysql> select * from user where name regexp '[:alnum:]';+----+----------+| id | name |+----+----------+| 1 | user1 || 3 | wang || 4 | user4 || 5 | user5 || 7 | wanggggg || 73 | wang. |+----+----------+6 rows in set (0.00 sec)
匹配多个实例
- * 0个或多个匹配
- + 1个或多个匹配
- \? 0个或一个匹配
- {n} 指定数目的匹配
- {n,}不少于指定数目的匹配
- {n,m}匹配数目的范围,m不超过255
mysql> select * from user where name regexp 'wang?';+----+----------+| id | name |+----+----------+| 3 | wang || 7 | wanggggg || 73 | wang. |+----+----------+3 rows in set (0.00 sec)
定位符
- ^ 匹配文本开始
- $ 匹配文本结束
mysql> select * from user where name regexp '^wang';+----+----------+| id | name |+----+----------+| 3 | wang || 7 | wanggggg || 73 | wang. |+----+----------+3 rows in set (0.00 sec)
阅读全文
0 0
- MySQL正则表达式
- mysql 正则表达式
- MySQL正则表达式
- MySQL正则表达式
- mysql 正则表达式查询
- MySQL正则表达式
- mysql 正则表达式手册
- MySQL的正则表达式
- mysql 正则表达式
- MySQL正则表达式
- MySQL的正则表达式
- mysql 正则表达式
- mysql的正则表达式
- mysql正则表达式总结
- MySQL正则表达式
- mysql 正则表达式
- MySQL正则表达式初步
- Mysql数据库正则表达式
- linux下安装pycharm遇到的问题
- mac OS 运行git报错; 前端ajax请求, 数据跨域,前端获取不到数据
- HDU 6078 Wavel Sequence
- 模板类和异常
- Android Arcgis(14)、FeatureLayer之范围查询
- MySQL正则表达式
- jQuery中模拟物流查询,跨域访问
- 深入理解数组指针与指针数组的区别
- python——作用域 == is
- git-子模块submodule
- Network Saboteur
- Rancher如何对接Ceph-RBD块存储
- [Java]进制转换代码实例·初级
- Python学习笔记(5)——A Day at the Supermarket