MySql 使用正则表达式
2013-12-07 15:14
253 查看
MySql 用where 子句对正则表达式提供了支持,允许你指定正则表达式,注意mysql仅支持多数正则表达式实现的一个很小的子集。
mysql 中正则表达式匹配不区分大小写,为区分大小写,可使用BINARY 关键字,如:
| 为正则表达式的OR操作符。它表示匹配基中之一。多个OR条件可以并入单个正则表达式,例如:'1000|2000|3000' 将匹配1000或2000或3000.
[123] 定义一组字符,它的意思是匹配1或2或3。[]是另一种形式的OR语句,事实上,正则表达式[123]Ton 为[1|2|3]Ton 的缩写。
为否定一个字符集,在集合的开始处放置一个^即可,因此[^123]匹配除1,2,3字符之外的任何东西。
为了匹配反斜杠(\)字符本身,需要使用\\\。
例如,你想找出以一个数(包括以小数点开始的数)开始的所有产品:
^有两种用法:在集合中(用[和]定义),用它来否定该集合,否则用它来指定串的开始。
\\( 匹配字符(,[0-9]匹配任意一个数字,sticks? 匹配stick和sticks (s 后的?使s可选),\\) 匹配字符)。
这个例子显示将返回0(因为文本hello中没有数字)。
1.基本字符匹配:
SELECT prod_name FROM products WHERE prod_name REGEXP '1000';
mysql 中正则表达式匹配不区分大小写,为区分大小写,可使用BINARY 关键字,如:
WHERE prod_name REGEXP BINARY 'JetPak .000'。
2. OR 匹配
WHERE prod_name REGEXP '1000|2000';
| 为正则表达式的OR操作符。它表示匹配基中之一。多个OR条件可以并入单个正则表达式,例如:'1000|2000|3000' 将匹配1000或2000或3000.
3.匹配几个字符之一
WHERE prod_name REGEXP '[123] Ton'
[123] 定义一组字符,它的意思是匹配1或2或3。[]是另一种形式的OR语句,事实上,正则表达式[123]Ton 为[1|2|3]Ton 的缩写。
为否定一个字符集,在集合的开始处放置一个^即可,因此[^123]匹配除1,2,3字符之外的任何东西。
4.匹配范围
可使用 - 来定义一个范围,如[0-9] 表示匹配0到9之间的任一个数字。范围不限于完整的集合,[1-3]和[6-9]也是合法的范围。此外,范围不一定只是数值的,[a-z]匹配任意一个字母字符。WHERE prod_name REGEXP '[1-5] Ton'
5.匹配特殊字符
为了匹配特殊字符,必须用\\为前导进行转义,\\- 表示查找-,\\. 表示查找. 。WHERE vend_name REGEXP '\\.'
为了匹配反斜杠(\)字符本身,需要使用\\\。
6.定位符
为了匹配特定位置的文本可以使用如下定位符:元字符 | 说明 |
^ | 文本的开始 |
$ | 文本的结尾 |
WHERE prod_name REGEXP '^[0-9\\.]'
^有两种用法:在集合中(用[和]定义),用它来否定该集合,否则用它来指定串的开始。
7.重复元字符
. | 匹配任意一个字符 |
* | 匹配0个或多个字符 |
+ | 匹配1个或多个字符(等于{1,} |
? | 匹配0个或1个字符(等于{0,1} |
{n} | 指定数目的匹配 |
{n,} | 不少于指定数据的匹配 |
{n,m} | 匹配数目的范围(m不超过255) |
WHERE prod_name REGEXP '\\([0-9] sticks?\\)'
\\( 匹配字符(,[0-9]匹配任意一个数字,sticks? 匹配stick和sticks (s 后的?使s可选),\\) 匹配字符)。
8.简单的正则表达式测试
可以在不使用数据库表的情况下用SELECT来测试正则表达式。REGEXP 在匹配成功时总是返回1,匹配不成功时返回0,可以用带文字串的REGEXP来测试表达式,并试验它们。相应的语法如下:SELECT 'hello' REGEXP '[0-9]';
这个例子显示将返回0(因为文本hello中没有数字)。
相关文章推荐
- MYSQL使用正则表达式过滤数据
- MySQL WHERE子句内使用正则表达式搜索
- mysql 查询语句中使用正则表达式
- 【MySql】1.3 使用正则表达式搜索
- MySQL初学者使用指南
- 【MySql】MySql基础使用详解
- 使用开源数据库软件dbeaver同时连接oracle、mysql、postgresql...
- Mysql触发器使用过程中遇到的问题
- 【MySQL】【备份】mydumper安装与使用细节
- 使用MySQL的yum源安装MySQL5.7
- MYSQL 使用show profiles 分析性能
- mysql中 explain使用详解
- linux下使用yum安装mysql
- MySQL下载安装、配置与使用(win7x64)
- 使用Mysql Fabric和ProxySQL对Mysql进行分片
- MySQL Query Browser的安装和使用
- MySQL无法使用select into outfile
- 在Linux下安装和使用MySQL
- mysql 基本使用教程(源于网络)
- 使用tab自动补全mysql命令