




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8.1正则表达式简介、语法演讲人1正则表达式简介012PHP正则表达式语法02目录011正则表达式简介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个数字022PHP正则表达式语法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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务教研室课程改革计划
- 公路建设水土保持保证体系及环境保护措施
- 教研组长教育创新心得体会
- 人教版三年级数学上册翻转课堂计划
- 【真题】苏科版八年级下学期3月月考数学试卷(含解析)江苏省镇江市宝堰中学2024-2025学年
- 教师职业素养与创新教学心得体会
- 高校教师教学效果评价范文
- 机械制造分包计划和管理措施
- 中医护理2025年度发展计划
- 小学美术老师教学能力提升计划
- 云南省各种建设项目的地质灾害危险性评估编制纲要
- 中国房地产开发企业esg表现报告-仲量联行-202302
- GB/T 8566-2022系统与软件工程软件生存周期过程
- GB/T 20975.1-2007铝及铝合金化学分析方法第1部分:汞含量的测定冷原子吸收光谱法
- 设计管理资料课件
- 剑桥商务英语BEC(初级)全套课件
- 医疗器械临床评价课件
- 沪科版九年级物理全一册教案(完整版)教学设计含教学反思
- DB32∕T 2880-2016 光纤传感式桥隧结构健康监测系统设计、施工及维护规范
- 开发报建流程及细则
- 洁净室尘埃粒子检测规范
评论
0/150
提交评论