正则表达式的使用
正则表达式(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
正则表达式(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”