资源描述:
《《正则表达式入门》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、正则表达式入门胡张东2014/7引言使用Everything查找关于正则表达式的ppt,但又不知道该ppt的具体名称,可以使用通配符“*”,*正则表达式*.ppt,这里的“*”表示了任意字符。引言正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。说简单点,正则表达式就是在一堆有规律的字符中找到你想要的字符。正则测试工具推荐大家使用装备软件自带的正则表达式测试工具,在DLL文件夹下的RegexTest.exe一个简单例子在开发装备软件时要检查
2、ProductClass、SSID等,通常都是通过正则表达式在一堆字符中提取出ProductClass,然后和某一个固定的值比较。比如要在一堆字符串中找到ProductClassRG200O-CA,源字符串为:ksdfjProductClasskdfjie:ldfiefRG200O-CAfiesdf,咋一看源字符串没有一点规则可言,但是仔细观查可以看到有ProductClass字符串可供定位,而且我们已知ProductClass格式为RG200O-CA,所以可以用正则表达式“.*ProductClass.*:.*(w{6}-
3、w{2}).*”来匹配。“.”表示匹配除换行符以外的任意字符,“*”表示前面的“.”匹配零次或更多次,“”是转义符号,表示后面的“:”就表示冒号,没有其它含义,“w”表示匹配字母或数字或下划线或汉字,“{6}”表示匹配前面的“w”6次,这个正则表达式输出的结果为小括号里面的内容。一些术语限定符分组零宽断言反向引用元字符上一页提到了两个个元字符“w”和“.”,元字符表示一类特殊的字符。接下来介绍一些其它常用的元字符,这些元字符必须要牢记!代码说明.匹配除换行符以外的任意字符w匹配字母或数字或下划线或汉字s匹配任意的空白符
4、d匹配数字b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束限定符在前面的例子中使用了“*”和“{6}”限定匹配次数,还有一些其它用于限定匹配次数的。代码/语法说明*重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{n,}重复n次或更多次{n,m}重复n到m次字符集如果想只匹配aeiou中的一个,使用[aeiou],[0-9]和d代表的含义相同,同理[a-z0-9A-Z_]也完全等同于w(如果只考虑英文的话),[.?!]匹配标点符号(.或?或!)正则表达式解释d{3}[fg]ood.+w{3,6
5、}s{5,}[0-8]?dd*匹配0到9之间的数字3次匹配food或者good匹配除换行符外任意字符一次或更多次匹配字母或数字或下划线或汉字3到6次匹配空格5次或者5次以上匹配0到8零次或者一次匹配0到9一次或者更多次分支条件在中国有一些特殊号码,比如110,119,120,现在我们要匹配这三个号码中的任意一个,可以使用正则表达式“110
6、120
7、119”,其中“
8、”是分支条件,使用“
9、”可以把不同的表达式分割,只要匹配到其中任意一个即可,匹配是从左到右匹配的,只要匹配到一个就不往下匹配了。众所周知IP地址每一位都不能大于2
10、55,在写匹配IP地址的正则表达式时,首先需要解决的是如何匹配0到255之间的数字!25[0-5]
11、2[0-4]d
12、1d{2}
13、dd?分组下面是一段Ping返回结果,要求用一个正则表达式取出最小时延、最大时延、平均时延,而且要兼容XP和Win7系统。Win7:最短=1ms,最长=2ms,平均=3msXP:Minimum=1ms,Maximum=2ms,Average=3ms正则表达式(Minimum
14、最短)s+=s+(d+)ms,s+(Maximum
15、最长)s+=s+(d+)ms,s+(Average
16、平均
17、)s+=s+(d+)ms每一个小括号括起来的都是一个分组,加上正则表达式本身就是第0个分组,所以共有7个分组Result[0]:Minimum=1ms,Maximum=2ms,Average=3msResult[1]:MinimumResult[2]:1Result[3]:MaximumResult[4]:2Result[5]:AverageResult[6]:3分组分组组号分配规则:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。((25[0-5]
18、2[0-4]d
19、1d{2}
20、dd
21、?).){3}(25[0-5]
22、2[0-4]d
23、1d{2}
24、dd?)上面的正则表达式使用了“.”匹配“.”,这里“”起到了转义的作用,依次类推,可以使用“?”和“*”匹配“?”和“*”一个合法的IPv4地址正则表达式反义有时需要查