- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
8.1正则表达式简介、语法
演讲人
1正则表达式简介
01
2PHP正则表达式语法
02
目录
01
1正则表达式简介
1正则表达式简介
在某些应用中,有时候需要根据一定的规则来匹配(查找)确认一些字符串,如要求用户输入的QQ号码为数字且至少5位。用于描述这些规则的工具就是正则表达式。
1.1最简单的匹配
最简单的匹配就是直接给定字符匹配。如用字符a去匹配aabab,则会匹配出3个结果,分别是字符串中的第1,2和第4个字符。这种匹配是最简单的情况,但往往实际处理中会复杂得多,如下面的“QQ号码为数字且至少5位”,其对应的正则表达式为:
^\d{5,}$
该正则表达式就描述需要确定的内容为至少5位以上的数字。该表达式是怎么描述这一规则的:
^:表示匹配字符串的开始,也即该字符串是独立的开始而不是包含在某个字符串之内
\d:表示匹配数字
{5,}:表示至少匹配5位及以上
1.1最简单的匹配
$:表示匹配字符串的结束,也即该字符串是独立的结束
现在就很清楚了,该正则表达式综合起来就是匹配5位以上的连续数字,且有独立的开始和结束,对于少于5位的数字,或者不是以数字开始和结尾的如a123456b这样都是无效的。
从该实例可以看出,正则表达式是从左至右描述的。
同样,如果要匹配移动号码的正则表达式为:
^1\d{10}$
提示
由于对正则表达式的匹配结果,在很多情况下都不是那么确定,所以最好下载一些辅助工具用于测试正则表达式的匹配结果。这类工具如MatchTracer、RegExBuilder等,以及其他类似的工具也可。
1.2元字符
在上面的实例中,^、\d及$等这些符号,代表了特定的匹配意义,称之为元字符,常用的元字符如下:
提示
当要匹配这些元字符的时候,需要用到字符转义功能,同样正则表达式里面用\来表示转义,如要匹配.符号,则需要用\.,否则.会被解释成“除换行符外的任意字符”。当然,要匹配\,则需要写成\\
连续的数字或字母可以用–符号连接起来,如匹配所有的小写字母,[1-5]匹配1至5这5个数字
02
2PHP正则表达式语法
2.1重复规则
正则表达式的威力在于其能够在模式中包含选择和循环,正则表达式用一些重复规则来表达循环匹配。
常用的重复如下:
2.2分枝
分枝是指制定几个规则,如果满足任意一种规则,则都当作匹配成功。具体来说就是用|符号把各种规则分开,且条件从左至右匹配。
提示
由于分枝规定,只要匹配成功,就不再对后面的条件加以匹配,所以如果想匹配有包含关系的内容,请注意规则的顺序。
下面是一个使用分枝的实例。
美国的邮政编码的规则是5个数字或者5个数字连上4个数字,如12345或者54321-1234,如果要匹配所有的邮编,则正确的正则表达式为:
\d{5}-\d{4}|\d{5}
//错误写法
2.2分枝
\d{5}|\d{5}-\d{4}
下面的错误写法,只能匹配到5位数字及9位数字的前5位数字的情况,而不能匹配9位数字的邮编。
2.3分组
在正则表达式中,可以用小括号将一些规则括起来当作分组,分组可以作为一个元字符来看待。
分组的实例,验证IP地址:
(\d{1,3}\.){3}\d{1,3}
这是一个简单的且不完善的匹配IP地址的正则表达式,因为它除了能匹配正确的IP地址外,还能匹配如322.197.578.888这种不存在的IP地址。
当然,用这个表达式简单匹配成功后可以在利用PHP的算术比较再加以判断IP地址是否正确。而正则表达式中没有提供算术比较功能,如果要完全匹配正确的IP地址,则需要改进如下:
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
2.3分组
规则说明
该规则关键之处在于确定IP地址每一段范围为0-255,然后再重复4次即可。在:
25[0-5]|2[0-4]\d|[01]?\d\d?
中,用分枝首先确定了250-255和200-249。[01]?\d\d?则确定了0-199的范围,综合起来就是0-255。
2.4贪婪与懒惰
正则表达式默认的情况下,会在满足匹配条件下尽可能的匹配更多内容。如a.*b,用他来匹配aabab,它会匹配整个aabab,而不会只匹配到aab为止,这就是贪婪匹配。
与贪婪匹配对应的是,在满足匹配条件的情况下尽可能的匹配更少的内容,这就是懒惰匹配。
上述实例对应的懒惰匹配规则为:
a.*?b
如果用该表达式去匹配aabab,那么就会得到aab
您可能关注的文档
- PHP程序设计基础(微课版)(第2版)课件 3.PHP final 关键字与类的接口.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.MYSQL数据库基本操作.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP cookie.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP超级全局变量.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP代码标记与注释.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP函数语法参数及返回值.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP类与对象.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP连接和选择数据库实现查询.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP留言本简介.pptx
- PHP程序设计基础(微课版)(第2版)课件 1.PHP数组概述、分类及声明.pptx
最近下载
- 小学数学百分数练习题(易错题).doc VIP
- 2024年法考学霸笔记民法.pdf
- 老旧小区改造监理实施细则.docx VIP
- ch07_accounting_information_system_considine4e_题库答案.docx VIP
- 碾压砼重力坝施工质量控制要点分析(建筑设计及理论论文资料).doc
- 规范《GA533-2012-挡烟垂壁》.pdf
- 心理健康--培训课件.ppt
- LabSOCS实验室无源效率刻度软件中文.pdf
- 《高等工程热力学及传热学》思考题参考答案.doc VIP
- (高清版)B/T 18266.5-2023 体育场所等级的划分 第5部分:滑雪场所星级划分及评定.pdf VIP
文档评论(0)