




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
胡张东胡张东 2014/72014/7 太仓市同维电子有限公司 引言 使用Everything查找关于正则表达式的ppt ,但又不知道该ppt的具体名称,可以使用 通配符“*”, *正则表达式*.ppt,这里的 “*”表示了任意字符。 太仓市同维电子有限公司 引言 正则表达式使用单个字符串来描述、匹配一 系列符合某个句法规则的字符串。在很多文 本编辑器里,正则表达式通常被用来检索、 替换那些符合某个模式的文本。 说简单点,正则表达式就是在一堆有规律的 字符中找到你想要的字符。 太仓市同维电子有限公司 正则测试工具 推荐大家使用装备软件自带的正则表达式测 试工具,在DLL文件夹下的RegexTest.exe 太仓市同维电子有限公司 一个简单例子 在开发装备软件时要检查ProductClass、SSID等,通常都 是通过正则表达式在一堆字符中提取出ProductClass,然 后和某一个固定的值比较。 比如要在一堆字符串中找到ProductClass RG200O-CA,源 字符串为: ksdfjProductClasskdfjie:ldfiefRG200O- CAfiesdf,咋一看源字符串没有一点规则可言,但是仔细 观查可以看到有ProductClass字符串可供定位,而且我们 已知ProductClass格式为RG200O-CA,所以可以用正则表达 式“.*ProductClass.*:.*(w6-w2).*”来匹配。 “.”表示匹配除换行符以外的任意字符,“*”表示前面 的“.”匹配零次或更多次,“”是转义符号,表示后面 的“:”就表示冒号,没有其它含义,“w”表示匹配字母 或数字或下划线或汉字,“6”表示匹配前面的“w”6 次,这个正则表达式输出的结果为小括号里面的内容。 太仓市同维电子有限公司 一些术语 太仓市同维电子有限公司 元字符 上一页提到了两个个元字符“w”和“.”,元字 符表示一类特殊的字符。接下来介绍一些其 它常用的元字符,这些元字符必须要牢记! 代码说明 .匹配除换行符以外的任意字符 w匹配字母或数字或下划线或汉字 s匹配任意的空白符 d匹配数字 b匹配单词的开始或结束 匹配字符串的开始 $匹配字符串的结束 太仓市同维电子有限公司 限定符 在前面的例子中使用了“*”和“6”限定匹配 次数,还有一些其它用于限定匹配次数的。 代码/语法说明 *重复零次或更多次 +重复一次或更多次 ?重复零次或一次 n重复n次 n,重复n次或更多次 n,m重复n到m次 太仓市同维电子有限公司 字符集 如果想只匹配aeiou中的一个,使用aeiou,0-9和d代 表的含义相同,同理a-z0-9A-Z_也完全等同于w(如果 只考虑英文的话),.?!匹配标点符号(.或?或!) 正则表达式解释 d3 fgood .+ w3,6 s5, 0-8? dd* 匹配0到9之间的数字3次 匹配food或者good 匹配除换行符外任意字符一次或更多次 匹配字母或数字或下划线或汉字3到6次 匹配空格5次或者5次以上 匹配0到8零次或者一次 匹配0到9一次或者更多次 太仓市同维电子有限公司 分支条件 在中国有一些特殊号码,比如110,119,120,现 在我们要匹配这三个号码中的任意一个,可以 使用正则表达式“110|120|119”,其中“|” 是分支条件,使用“|”可以把不同的表达式分 割,只要匹配到其中任意一个即可,匹配是从 左到右匹配的,只要匹配到一个就不往下匹 配了。 众所周知IP地址每一位都不能大于255,在写匹 配IP地址的正则表达式时,首先需要解决的是 如何匹配0到255之间的数字! 250-5|20-4d|1d2|dd? 太仓市同维电子有限公司 分组 下面是一段Ping返回结果,要求用一个正则表达式取出最小时延、最大时延、平均时延,而且要兼容XP和Win7系统。 Win7:最短 = 1ms,最长 = 2ms,平均 = 3ms XP:Minimum = 1ms, Maximum = 2ms, Average = 3ms 正则表达式 每一个小括号括起来的都 是一个分组,加上正则表 达式本身就是第0个分组, 所以共有7个分组 Result0: Minimum = 1ms, Maximum = 2ms, Average = 3ms Result1: Minimum Result2: 1 Result3: Maximum Result4: 2 Result5: Average Result6: 3 太仓市同维电子有限公司 分组 分组组号分配规则: 从左向右,以分组的左括号为标志,第一个出现的 分组的组号为1,第二个为2,以此类推。 (250-5|20-4d|1d2|dd?).)3(250-5|20-4d|1d2|dd?) 上面的正则表达式使用了“.”匹配“.”,这里“”起到了 转义的作用,依次类推,可以使用“?”和“*”匹配“?” 和“*” 一个合法的IPv4地址正则表达式 太仓市同维电子有限公司 反义 有时需要查找不属于某个能简单定义的字符 类的字符。比如想查找除了数字以外,其它 任意字符都行的情况,这时需要用到反义 代码/语法说明 W匹配任意不是字母,数字,下划线,汉字的字符 S匹配任意不是空白符的字符 D匹配任意非数字的字符 B匹配不是单词开头或结束的位置 x匹配除了x以外的任意字符 aeiou匹配除了aeiou这几个字母以外的任意字符 太仓市同维电子有限公司 贪婪 当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式 能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:a.*b,它将 会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会 匹配整个字符串aabab,而不能匹配到aab,这被称为贪婪匹配。 写出一个正则表达式匹配以a开始,以b结束的字符串 a.*b 正则表达式是贪婪的! a.*?b 太仓市同维电子有限公司 懒惰 虽然正则是贪婪的,但有时我们更需要懒惰匹配,也就是 匹配尽可能少的字符。前面给出的限定符都可以被转化为 懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就 意味着匹配任意数量的重复,但是在能使整个匹配成功的 前提下使用最少的重复。现在看看懒惰版的例子吧: a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它 应用于aabab的话,它会匹配aab(第一到第三个字符)和 ab(第四到第五个字符)。 代码/语法说明 *?重复任意次,但尽可能少重复 +?重复1次或更多次,但尽可能少重复 ?重复0次或1次,但尽可能少重复 n,m?重复n到m次,但尽可能少重复 n,?重复n次以上,但尽可能少重复 太仓市同维电子有限公司 一些例子 听到这可能已经被我绕晕了,如果你没有晕而且还全部掌握了,那么 我只能说我讲的太生动了,接下来通过一些例子来巩固下。 匹配要求正则表达式 格式为2014/4/24的日期d1,4/(10-2|0?1-9)/(301|21d|0?1-9) 格式为XX:XX:XX:XX:XX:XX的MAC地址 (0-9a-fA-F)4.)2(0-9a-fA-F)4)格式为XXXX.XXXX.XXXX的MAC地址 (0-9a-fA-F)2:)5(0-9a-fA-F)2) 格式为ChinaNet-XXXX的SSID,X采用0-9 、a-z、A-Z ChinaNet-(0-9a-zA-Z)4 格式为HGU421N v3的ProductClass w7sw2 格式为Apr 15 2014 20:55:34的编译时间 w3s*(301|21d|0?1-9)s*d4s*(20- 4|1d|0?1-9):(60|1-5d|0?1-9):(60|1-5d|0?1 -9) 正数、负数和小数 +-?d+.d+ 以ing结尾的单词 b(w+)ingb 格式为的姓名 (w+) 太仓市同维电子有限公司 零宽断言 在上一页使用正则表达式b(w+)ingb匹配以ing为结尾的单词,如果源字符串 是“reading”,那么匹配出来的结果有两个分组,分组0代表整个表达式reading ,分组1是小括号(w+)里面的内容read,如果想分组0的结果为read该怎么办 ?此时就需要用到零宽断言了。 什么是零宽断言呢? 正则表达式b(w+)(?=ingb)匹配出来的结果是read,(?=ing)是零宽度正预测先 行断言,它断言自身出现的位置的后面能匹配表达式ing,不包含ing。 正则表达式(?=read)(w+)匹配出来的结果是ing,(?=read)是零宽度正回顾后发 断言,它断言自身出现的位置的前面能匹配表达式read,不包含read。 太仓市同维电子有限公司 负向零宽断言 匹配一个单词,该单词里面出现了a,但是a后面不是b。 bw*abw*b 上面的正则表达式bw*a(?!b)w*b使用了负向零宽断言中的零宽度负预测先 行断言,正则表达式(?!b)即断言此位置的后面不能匹配表达式b fa ccbfa ccb bw*ab?w*bfa ccbfa bw*ab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 听读训练考试题及答案
- 天然气管护员考试题库及答案
- 冀教版数学六年级上册1.3 扇形 同步练习(含解析)
- 骨整合电刺激-洞察及研究
- 静脉抽血法试题及答案
- 纪检督察员管理办法
- 财务供热收费管理办法
- it公司取证管理办法
- 营销管理办法明确了
- it数据变更管理办法
- 2022创伤骨科患者围术期下肢静脉血栓形成诊断及防治专家共识
- 《急性亚硝酸盐中毒》课件
- 2024年度企业员工信息安全培训内容
- 《标准施工招标文件》(2007年版)
- led显示屏售后服务承诺书
- 酒店水单模板
- 输尿管镜碎石术
- 园林植物栽培实验课件
- 兽医药理学各论(抗微生物药物)课件(同名386)
- 焊接专业安全技术交底
- 洁净区人员行为规范培训PPT
评论
0/150
提交评论