欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql查询语句中正则表达式的使用实例

程序员文章站 2022-03-14 08:24:54
正则表达式的使用 正则表达式(Regular Expression),是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具裡,正则表达式...

正则表达式的使用

正则表达式(Regular Expression),是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具裡,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl 中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由UNIX 中的工具软件(例如SED 和GREP)普及开的,通常缩写成“REGEX”或者“REGEXP”。

MySQL 利用REGEXP 命令提供给用户扩展的正则表达式功能,REGEXP 实现的功能,类似UNIX上GREP 和SED 的功能,并且REGEXP 在进行模式匹配时是区分大小写的。熟悉并掌握REGEXP的功能可以使模式匹配工作事半功倍。

MySQL 5.0 中可以使用的模式序列如表17-1 所示。

表17-1 正则表达式中的模式

序列 序列说明

^ 在字符串的开始处进行匹配

$ 在字符串的末尾处进行匹配

. 匹配任意单个字符,包括换行符

[…] 匹配出括号内的任意字符

[^…] 匹配不出括号内的任意字符

a* 匹配零个或多个a(包括空串)

a+ 匹配1 个或多个a(不包括空串)

a? 匹配1 个或零个a

a1|a2 匹配a1 或a2

a(m) 匹配m 个a

a(m,) 匹配m 个或更多个a

a(m,n) 匹配m 到n 个a

a(,n) 匹配0 到n 个a

mysql> select name ,email from t where email REGEXP "@163[.,]com$";

mysql> select name ,email from t where email like “@163%.com” or email like “@163%,com”