正则表达式是定义复杂查询的一个强有力的工具。
正则表达式定义了一个字符串的规则。最简单的正则表达式不包含任何保留字。例如,正则表达式hello只和字符串“hello”匹配。
一般的正则表达式使用了某些特殊的结构,所以它能匹配更多的字符串。
例如,正则表达式hello|word既能匹配字符串“hello”也能匹配字符串“word”。举一个更复杂一点的例子,正则表达式B[an]*s可以匹配字符串“Bananas”、“Baaaaas” 、“Bs”以及其他任何以B开头以s结尾的字符串,中间可以包括任意个a和任意个n的组合。
一个正则表达式中的可以使用以下保留字
^
所匹配的字符串以后面的字符串开头
mysql> select "fonfo" REGEXP "^fo$"; -> 0(表示不匹配)
mysql> select "fofo" REGEXP "^fo"; -> 1(表示匹配)
$
所匹配的字符串以前面的字符串结尾
mysql> select "fono" REGEXP "^fono$"; -> 1(表示匹配)
mysql> select "fono" REGEXP "^fo$"; -> 0(表示不匹配)
.
匹配任何字符(包括新行)
mysql> select "fofo" REGEXP "^f.*"; -> 1(表示匹配)
mysql> select "fonfo" REGEXP "^f.*"; -> 1(表示匹配)
a*
匹配任意多个a(包括空串)
mysql> select "Ban" REGEXP "^Ba*n"; -> 1(表示匹配)
mysql> select "Baaan" REGEXP "^Ba*n"; -> 1(表示匹配)
mysql> select "Bn" REGEXP "^Ba*n"; -> 1(表示匹配)
a+
匹配任意多个a(不包括空串)
mysql> select "Ban" REGEXP "^Ba+n"; -> 1(表示匹配)
mysql> select "Bn" REGEXP "^Ba+n"; -> 0(表示不匹配)
a?
匹配一个或零个a
mysql> select "Bn" REGEXP "^Ba?n"; -> 1(表示匹配)
mysql> select "Ban" REGEXP "^Ba?n"; -> 1(表示匹配)
mysql> select "Baan" REGEXP "^Ba?n"; -> 0(表示不匹配)
de|abc
匹配de或abc
mysql> select "pi" REGEXP "pi|apa"; -> 1(表示匹配)
mysql> select "axe" REGEXP "pi|apa"; -> 0(表示不匹配)
mysql> select "apa" REGEXP "pi|apa"; -> 1(表示匹配)
mysql> select "apa" REGEXP "^(pi|apa)$"; -> 1(表示匹配)
mysql> select "pi" REGEXP "^(pi|apa)$"; -> 1(表示匹配)
mysql> select "pix" REGEXP "^(pi|apa)$"; -> 0(表示不匹配)
(abc)*
匹配任意多个abc(包括空串)
mysql> select "pi" REGEXP "^(pi)*$"; -> 1(表示匹配)
mysql> select "pip" REGEXP "^(pi)*$"; -> 0(表示不匹配)
mysql> select "pipi" REGEXP "^(pi)*$"; -> 1(表示匹配)
{1}
{2,3}
这是一个更全面的方法,它可以实现前面好几种保留字的功能
a*
可以写成a{0,}
a+
可以写成a{1,}
a?
可以写成a{0,1}
在{}内只有一个整型参数i,表示字符只能出现i次;
在{}内有一个整型参数i,后面跟一个“,”,表示字符可以出现i次或i次以上;
在{}内只有一个整型参数i,后面跟一个“,”,再跟一个整型参数j,表示字符只能出现i次以上,j次以下(包括i次和j次)。
其中的整型参数必须大于等于0,小于等于 RE_DUP_MAX(默认是255)。如果有两个参数,第二个必须大于等于第一个
[a-dX]
匹配“a”、“b”、“c”、“d”或“X”
[^a-dX]
匹配除“a”、“b”、“c”、“d”、“X”以外的任何字符。“[”、“]”必须成对使用
mysql> select "aXbc" REGEXP "[a-dXYZ]"; -> 1(表示匹配)
mysql> select "aXbc" REGEXP "^[a-dXYZ]$"; -> 0(表示不匹配)
mysql> select "aXbc" REGEXP "^[a-dXYZ]+$"; -> 1(表示匹配)
mysql> select "aXbc" REGEXP "^[^a-dXYZ]+$"; -> 0(表示不匹配)
mysql> select "gheis" REGEXP "^[^a-dXYZ]+$"; -> 1(表示匹配)
mysql> select "gheisa" REGEXP "^[^a-dXYZ]+$"; -> 0(表示不匹配)
[[.characters.]]
表示比较元素的顺序。在括号内的字符顺序是唯一的。但是括号中可以包含通配符, 所以他能匹配更多的字符。举例来说:正则表达式[[.ch.]]*c匹配chchcc的前五个字符。
[=character_class=]
表示相等的类,可以代替类中其他相等的元素,包括它自己。例如,如果o和(+)是一个相等的类的成员,那么[[=o=]]、[[=(+)=]]和[o(+)]是完全等价的。
[:character_class:]
在括号里面,在[:和:]中间是字符类的名字,可以代表属于这个类的所有字符。
字符类的名字有: alnum、digit、punct、alpha、graph、space、blank、lower、upper、cntrl、print和xdigit
mysql> select "justalnums" REGEXP "[[:alnum:]]+"; -> 1(表示匹配)
mysql> select "!!" REGEXP "[[:alnum:]]+"; -> 0(表示不匹配)
[[::]]
分别匹配一个单词开头和结尾的空的字符串,这个单词开头和结尾都不是包含在alnum中的字符也不能是下划线。
mysql> select "a word a" REGEXP "[[::]]"; -> 1(表示匹配)
mysql> select "a xword a" REGEXP "[[::]]"; -> 0(表示不匹配)
mysql> select "weeknights" REGEXP "^(wee|week)(knights|nights)$"; -> 1(表示匹配)
分享到:
相关推荐
正则表达式的介绍应用方式,各类正则表达式详解,数据库用正则表达式能更快捷的查询。
本文实例讲述了mysql正则表达式(regexp和rlike)的搜索功能。分享给大家供大家参考...使用正则表达式的优点是,不限于在like运算符中基于具有百分号(%)和下划线(_)的固定模式搜索字符串。 使用正则表达式,有更多的元
正则表达式(regular expression)是一种表示方式,最早在LINUX被当做一种搜索算法应用在编辑器中,后来被广泛应用,不仅PHP脚本支持正则表达式,Perl、C#、Java以及JavaScript和MySQL也对正则表达式支持。在PHP中...
ps:下面看下利用正则表达式提取括号内内容 比如现在要提取 中华人们共和国,简称(中国) 这句话中括号里的“中国” import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { ...
PHP和MySQL_Web开发_原书第4版 04_字符串操作与正则表达式
MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。 如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。 下表中的正则模式可应用于...
用Tkinter做的界面,布局十分简单,账号使用正则进行限制,TCP进行通信,采用多线程运行服务端,MySQL存储用户信息,
就是因为这样工具应用十分广泛,所以对这样的工具全面的进行优化策略总结是非常划算的,因为无论你是PHP、Perl、Python、C++、C#、Java等等语言的程序员,你都是有非常大可能用上Mysql、正则表达式这样的工具的。...
今天学习了正则表达式,觉得非常实用,而且现在各种编程语言和应用软件如Word、MySQL等等也都内置了正则引擎。
同样的,它也支持其他正则表达式的匹配,我们在MySQL中使用 REGEXP 操作符来进行正则表达式匹配。用法和like相 似,但又强大很多,能够实现一些很特殊的、复杂的规则匹配。正则表达式使用REGEXP命令进行匹配时,如果...
Sinatra应用程序可从结构化的生物多样性发生数据中解析人物姓名,应用基本的正则表达式和启发式方法消除歧义,然后允许经过身份验证的用户通过声明他们的身份。 经过身份验证的用户还可以帮助具有ORCID或Wikidata...
将这数值弹出一个alert并且发信给指定的邮件地址 获取页面内所有地方的以"<< >>"为标示的这个符号代表书名号,获取之中的内容 使用正则表达式>> 功能点: 1)URL抓取页面。 2)正则表达式匹配。 3)邮件系统调用 请注意...
《零基础学PHP+MYSQL》共19章内容,包括PHP的基础知识和应用方法、PHP简介、PHP的安装和设置、PHP的语法、PHP常用函数说明、PHP简单应用实例、PHP数据库编程、Ajax、XML、正则表达式、PHP与MySQL综合应用实例等。...
括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符即符合查找条件。 (3)按一下空格键,添加空格符。空格符是空行的一个组成成分。 (4)选择“制表符”,添加代表制表符的“\t”。 (5)移动光标,将...
理论部分包括PHP技术概述和基本语法、字符串和正则表达式、数组和函数、文件和目录操作、PHP的异常处理机制、XML文件操作、Session和Cookie会话管理、Smarty模板引擎、Ajax技术和MySQL数据库。实战部分包括在线投票...
·利用PHP正则表达式的功能强大的数据验证技术。 ·介绍计划Web应用程序,包括用户界面和用户管理。 ·提供关于保证Web应用程序安全性的系统化指南。 ·涵盖广泛的实现问题——包括国际化、错语处理、数据验证、调试...
使用比较、正则表达式、全文搜索等过滤数据 连接关系数据 创建和更改表 插入、更新和删除数据 利用存储过程和触发器的强大功能 使用视图和游标 管理事务处理 创建用户帐户并通过访问控制管理安全性
它将网站的副本嵌入到应用程序中,因此不需要Internet连接即可使用正则表达式。 其背后的动机是,当开发用于产品的正则表达式时,我经常发现自己一次又一次地打开网站,从而导致各种状态的许多选项卡淹没在网页的...
分别介绍了PHP 7的基本概念、PHP服务器环境配置、PHP的基本语法、PHP的语言结构、字符串和正则表达式、数组、时间和日期、面向对象、错误处理和异常处理、PHP与Web页面交互、文件与目录操作、图形图像处理、Cookie与...
括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符即符合查找条件。 (3)按一下空格键,添加空格符。空格符是空行的一个组成成分。 (4)选择“制表符”,添加代表制表符的“\t”。 (5)移动光标,将...