MySQL中的正则表达式

正则表达式是用正则表达式语言来建立

基本字符的匹配

.是正则表达式语言中的一个特殊的字符,它表示匹配任意一个字符

在LIKE和REGEXP之间有一个重要的差别,LIKE匹配整个列,如果被匹配的文本仅在列值中出现,LIKE将不会找到它,相应的行也不会被返回(除非使用通配符)

而REGEXP在列值内匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行也会被返回。

MySQL中的正则表达式匹配默认不区分大小写,为区分大小写,可使用BINARY关键字,在REGEXP后面加上BINARY即可

进行OR匹配

|为正则表达式的OR操作符,它表示匹配其中之一

匹配几个字符之一

[]是另一种形式的OR语句。事实上,正则表达式[123] Ton是[1|2|3] Ton的缩写,两者是等同的,但是需要用[]来定义OR语句查找什么,例如下面的例子

并非我们期望的输出,这是因为MySQL假定你的意思是‘1‘或‘2‘或‘3 ton‘,除非把字符|括在一个集合中,负责它将应用于整个串。

匹配范围

[1-5]定义了一个范围,这个表达式的范围是匹配1到5,也可以写成[12345],这两者是等价的,不过前者更整洁

匹配特殊字符

\\.匹配. 转义字符,为了匹配反斜杠(\)字符本身,需要使用\\\

多数正则表达式实现使用单个反斜杠转义特殊字符,以便能使用这些字符本身,但MySQL要求两个反斜杠,MySQL自己解释一个,正则表达式解释另一个

匹配多个实例

元字符    说明

*       0个或多个匹配

+      1个或多个匹配,等于{1,}

?      0个或1个匹配,等于{0,1}

{n}     指定数目的匹配

{n,}      大于等于指定数目的匹配

{n,m}    匹配数目的范围,m不超过255

对这个正则表达式解释一下,转义符匹配括号,[0-9]匹配数字,s后的?使s可选,0个或1个

在使用正则表达式时,编写某个特殊的表达式几乎总是不止一种方法

定位符

元字符    说明

^      文本的开始

$      文本的结尾

[[:<:]]    词的开始

[[:>:]]    词的结尾

注意^有两种用途,在集合中(用[和]定义),用它来否定该集合,否则,用来匹配串的开始处

匹配以数字或点开头的

简单的正则表达式测试

时间: 2024-10-17 15:47:05

MySQL中的正则表达式的相关文章

MySQL中REGEXP正则表达式使用大全

REGEXP在mysql是用来执行正则表达式的一个函数 像php中的preg之类的函数了,regexp正则函数如果只是简单的查询使用like即可,但复杂的还是需要使用regexp了,下面我们来看看. MySql用户手册建议,在构造简单查询时,仍使用通配符. 如:Select [*|fieldname list] From [tablename] where [fieldname] like ["%someletter"|"%someletter%","_&

在MySQL中使用正则表达式

在MySQL中的REGEXP函数可以在平时使用SQL时匹配正则表达式,在平时在使用一些查询条件时可以使用REGEXP函数来匹配相应的字符从而可以替代很多自己不太熟悉或者是不了解的SQL函数且通用,从而提高日常的工作效率,在MySQL下的REGEXP函数使用十分简单,正则表达式的元字符可以参看:http://jim123.blog.51cto.com/4763600/1850919,REGEXP函数返回值是布尔值0和1,即,匹配为1,不配为0,如: mysql> SELECT 'Monty!' R

mysql中使用正则表达式查询

正则表达式功能确实很强大,那天专门抽空学学,这里就暂时在mysql查询中用用. 正则表达式强大而灵活,可以应用于非常复杂的查询. 选项 说明(自动加匹配二字) 例子 匹配值示例 ^ 文本开始字符 '^b'匹配以字母b开头的字符串 book, big, banana, bike $ 文本结束字符 'st$'匹配以st结尾的字符串 test, resist, persist . 任何单个字符 'b.t'匹配任何b和t之间有一个字符 bit, bat, but, bite * 0个或多个在它前面的字符

mysql中正则表达式的使用

mysql中正则表达式的性能要高于like,所以这里总结一下正则表达式的使用. 正则表达式的模式及其含义: 下面举例说明其用法: 建表student: create table student(id int(6) auto_increment,name carchar(6),age int(3),primary key(id)); 插入数据: insert into student(name,age) values('xzb',20),('spal',22),('wgc',32); 1.^ se

如何在MySQL中获得更好的全文搜索结果

很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录.在后台,这些程序使用在一个SELECT 查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候. mysql针对这一问题提供了一种基于内建的全文查找方式的解决方案.在此,开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的MySQL方法在那些字段运行搜索,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜

mysql中的模糊查询

转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词). 第一种是标准的SQL模式匹配.它有2种通配符:“_”和“%”.“_”匹配任意单个字符,而“%”匹配任意多个字符(包括0个).举例如下: SELECT * FROM table_name WHERE column_name LIKE ‘m%’; #查询

mysql中用户权限导出的脚本

MySQL数据库备份和迁移,是DBA日常工作中,经常需要做的工作.备份一般由物理备份和逻辑备份两种,对于用xtrabackup进行物理备份来说,表数据和用户权限都会全部备份和恢复:如果是逻辑备份的话,用户数据和授权信息都需要单独的导出导入,用户数据直接用 mysqldump 工具导出导入即可,但mysql中用户权限不能直接导出导入,一个权限一个权限的处理,有比较麻烦. 所以编写一个mysql用户权限脚本,对源数据库中的用户授权信息进行导出,就非常必要了.只要有用户权限的授权sql,不论是平时备份

mysql中模糊查询的四种用法介绍

下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为“张三”,“张猫三”.“三脚猫”,“唐三藏”等等有“三”的记录全找出来. 另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件 SELECT * FROM [user] WHERE u_name LIKE

关于MySql中数据库、表的操作以及增删改查等一些SQL语句注意事项

(1)怎么在cmd中复制粘贴内容? 参考:http://jingyan.baidu.com/article/93f9803fd3a4dde0e46f55f5.html (2)怎么打开进入和退出数据库? --其中-h是主机名,可以写IP地址127.0.0.1,回车后,提示输入密码即可. mysql -h localhost -u root -p --退出数据库是exit或者quit或者CTRL+C. (3)在dos中以及mysql中修改mysql的root密码 --在dos中,即不需要进入mysq