




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
正则表达式入门胡张东2014/7引言使用Everything查找关于正则表达式的ppt,但又不知道该ppt的具体名称,可以使用通配符“*”,
*正则表达式*.ppt,这里的“*”表示了任意字符。引言正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。说简单点,正则表达式就是在一堆有规律的字符中找到你想要的字符。正则测试工具推荐大家使用装备软件自带的正则表达式测试工具,在DLL文件夹下的RegexTest.exe一个简单例子在开发装备软件时要检查ProductClass、SSID等,通常都是通过正则表达式在一堆字符中提取出ProductClass,然后和某一个固定的值比较。比如要在一堆字符串中找到ProductClassRG200O-CA,源字符串为:
ksdfjProductClasskdfjie:ldfiefRG200O-CAfiesdf,咋一看源字符串没有一点规则可言,但是仔细观查可以看到有ProductClass字符串可供定位,而且我们已知ProductClass格式为RG200O-CA,所以可以用正则表达式“.*ProductClass.*\:.*(\w{6}-\w{2}).*”来匹配。“.”表示匹配除换行符以外的任意字符,“*”表示前面的“.”匹配零次或更多次,“\”是转义符号,表示后面的“:”就表示冒号,没有其它含义,“\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(如果只考虑英文的话),[.?!]匹配标点符号(.或?或!)正则表达式解释\d{3}[fg]ood.+\w{3,6}\s{5,}[0-8]?\d\d*匹配0到9之间的数字3次匹配food或者good匹配除换行符外任意字符一次或更多次匹配字母或数字或下划线或汉字3到6次匹配空格5次或者5次以上匹配0到8零次或者一次匹配0到9一次或者更多次分支条件在中国有一些特殊号码,比如110,119,120,现在我们要匹配这三个号码中的任意一个,可以使用正则表达式“110|120|119”,其中“|”是分支条件,使用“|”可以把不同的表达式分割,只要匹配到其中任意一个即可,匹配是从左到右匹配的,只要匹配到一个就不往下匹配了。众所周知IP地址每一位都不能大于255,在写匹配IP地址的正则表达式时,首先需要解决的是如何匹配0到255之间的数字!25[0-5]|2[0-4]\d|1\d{2}|\d\d?分组下面是一段Ping返回结果,要求用一个正则表达式取出最小时延、最大时延、平均时延,而且要兼容XP和Win7系统。Win7:最短=1ms,最长=2ms,平均=3msXP:Minimum=1ms,Maximum=2ms,Average=3ms正则表达式(Minimum|最短)\s+=\s+(\d+)ms,\s+(Maximum|最长)\s+=\s+(\d+)ms,\s+(Average|平均)\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]|2[0-4]\d|1\d{2}|\d\d?)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|\d\d?)上面的正则表达式使用了“\.”匹配“.”,这里“\”起到了转义的作用,依次类推,可以使用“\?”和“\*”匹配“?”和“*”一个合法的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的日期\d{1,4}/(1[0-2]|0?[1-9])/(3[01]|[21]\d|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-ZChinaNet-([0-9a-zA-Z]){4}格式为HGU421Nv3的ProductClass
\w{7}\s\w{2}格式为Apr15201420:55:34的编译时间
\w{3}\s*(3[01]|[21]\d|0?[1-9])\s*\d{4}\s*(2[0-4]|1\d|0?[1-9]):(60|[1-5]\d|0?[1-9]):(60|[1-5]\d|0?[1-9])正数、负数和小数
[+-]?\d+\.\d+以ing结尾的单词\b(\w+)ing\b格式为huzhangdong@的姓名
(\w+)@零宽断言在上一页使用正则表达式\b(\w+)ing\b匹配以ing为结尾的单词,如果源字符串是“reading”,那么匹配出来的结果有两个分组,分组0代表整个表达式reading,分组1是小括号(\w+)里面的内容read,如果想分组0的结果为read该怎么办?此时就需要用到零宽断言了。什么是零宽断言呢?正则表达式\b(\w+)(?=ing\b)匹配出来的结果是read,(?=ing)是零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式ing,不包含ing。正则表达式(?<=read)(\w+)匹配出来的结果是ing,(?<=read)是零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式read,不包含read。负向零宽断言匹配一个单词,该单词里面出现了a,但是a后面不是b。\b\w*a[^b]\w*\b上面的正则表达式\b\w*a(?!b)\w*\b使用了负向零宽断言中的零宽度负预测先行断言,正则表达式(?!b)即断言此位置的后面不能匹配表达式bfaccbfaccb\b\w*a[^b]??\w*\bfaccbfa\b\w*a[^b]??
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46236.3-2025中国语言资源保护调查规范第3部分:方言文化
- 2025年江西农商联合银行金融科技人才招聘25人模拟试卷有答案详解
- 2025年中国环氧膨胀涂料行业市场分析及投资价值评估前景预测报告
- 2025内蒙古工业大学事业编制人员招聘20人模拟试卷附答案详解(模拟题)
- 2025年4月四川成都师范学院考核招聘人员(第二批)模拟试卷附答案详解(黄金题型)
- 2025吕梁市公立医院招聘(316人)考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年中国化妆品香精行业市场分析及投资价值评估前景预测报告
- 2025年中国护肤品中的脂质体行业市场分析及投资价值评估前景预测报告
- 2025年黑龙江省交通投资集团有限公司招聘95人模拟试卷及答案详解(必刷)
- 2025年河北省人民医院招聘工作人员模拟试卷及答案详解(必刷)
- 文明友善主题班会课件
- 反恐单位视频管理制度
- 酒店众筹项目方案
- 可信数据空间解决方案星环科技
- 《高龄卧床高危静脉血栓栓塞症防治中国专家共识》解读
- 高一上学期《早读是需要激情的!》主题班会课件
- 顶板在线监测管理制度
- 我国公务员制度中存在的问题及对策
- 《小狗钱钱》完整版
- 《酒类鉴赏威士忌》课件
- 各种奶茶配方资料
评论
0/150
提交评论