Perl以及正则在Perl中的应用

上传人:xuey****n398 文档编号:246235258 上传时间:2024-10-13 格式:PPTX 页数:24 大小:282.82KB
返回 下载 相关 举报
Perl以及正则在Perl中的应用_第1页
第1页 / 共24页
Perl以及正则在Perl中的应用_第2页
第2页 / 共24页
Perl以及正则在Perl中的应用_第3页
第3页 / 共24页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2010-5-13,#,Perl,技巧分享,Perl,以及正则在,Perl,中的应用,By,小亮,寒暄,此处省略大约一千八百余字,这里可以鼓掌了,谢谢,如何在,windows,下使用,cpan,一分钟学会,perl,$,%,for/foreach,while,open,print,my words=(a,b,c);,foreach(words),print;,Perldoc f for,Search.cpan.org,常用简写,while()print if/Norma/;,$x=1;print$x+,n until$x=5;,alpha=(a.z,n);print foreach alpha;,注释的方法,1.,标准方法:,#,2.,=for comment Commented text =cut,3.,C+;/*This is a comment.C+style!*/,Perl,日常用途,读取文件,进行文本处理,Open DH,”xxx.txt”,抓取页面,然后进行文本处理,-,lwp,配合其他程序,对结果进行文本处理,Netstat an|findstr“:80”|perl e“while()$i+print$i”,示例,正则,什么是正则,Hello,202.138.32.34,正则的三种模式,匹配:,m/,(还可以简写为,/,,略去,m,),替换:,s/,转化:,tr/,修饰词含义,/i,忽略字母大小写,/m,令,和,$,匹配随后嵌入的,n,。,/s,令,.,匹配换行符并且忽略废弃了的,$*,。,/x,或略(大多数)空白并且允许在模式里的注释,/o,只编译模式一次,/g,全局地查找所有匹配,s,模式和,m,模式的区别:,s:/e,把右边当作一个表达式计算,m:/cg,在,/g,匹配失败后允许继续查找,正则,-,选择自己的分隔符,s(egg);,slarvapupa;,spupa/imago/;,s!aaa!bbb!;,saaabbb;,正则量词,量词原子性 含义,*否 匹配,0,或者更多次数(最大)。,+,否 匹配 或者更多次数(最大)。,?,否 匹配,1,或者,0,次(最大)。,COUNT,否 匹配,COUNT,次,MIN,否 匹配至少,MIN,次(最大)。,MIN,MAX,否 匹配至少,MIN,次但不超过,MAX,次(最大),*,?,否 匹配,0,或者更多次(最小),+?,否 匹配,1,或者更多次(最小),MIN,?,否 匹配最多,MIN,次(最小),MIN,MAX?,否 匹配至少,MIN,次但不超过,MAX,次(最小),扩展的正则序列,(?#.),否 注释,抛弃,(?:.),是 只集群,不捕获的圆括弧,(?imsx-imsx),否 打开,/,关闭模式修饰词,(?imsx-imsx:.),是 集群圆括弧加修饰词,(?=.),否 如果前向查找断言成功,返回真,(?!.),否 如果前向查找断言失败,返回真,(?.),是 匹配未反向跟踪的子模式,(?.),否 执行嵌入的,Perl,代码,(?.),是 匹配来自嵌入,Perl,代码。,正则的例子,*(?:)*,前半部分用来匹配,后半部分用来匹配单独的,匹配类似,匹配注释,匹配注释中的,/,考虑分号,或者一行的开始,(?!http:)/,匹配,http:/,正则的例子,-2,Perl,逐字匹配,perl-e$x=vvvvvvv;while($x=/v(?=vv)/g)print 1,Perl,匹配,非,!叹号,perl,-eprintaaa,http:/aaaa,=m(?,Perl,匹配多行,my($want_str)=$k=msm;,正则的例子,-3,$x=1;print$x+,n until$x=5;,alpha=(a.z,n);print foreach alpha;,正则的例子,-4,问题:,你想找到第,N,个,fish.,比如,想找到第三个“,fish,”,字串:,One fish two fish red fish blue fish,解决方法,第一种,使用,/g,模式,配合,while,计数,:,$WANT=3;$count=0;while(/(w+)s+fishb/gi)if(+$count=$WANT)print The third fish is a$1 one.n;#Warning:dont last out of this loop ,The third fish is a red one.,或者选择下面这种奇妙的方式,:,/(?:w+s+fishs+)2(w+)s+fish/i;,正则的例子,-5,#,简单的使用,while$count=0;while($string=/PAT/g)$count+;#or whatever youd like to do here#,高端的用法,$count=0;$count+while$string=/PAT/g;#,或者,forfor($count=0;$string=/PAT/g;$count+),正则的例子,-6,匹配大于,15,的数字,my$string=11,13,17,22,101,33,001,003,0010,001000,15.5,171.77;,while($string=/0*(1-9d2,|16-9|2-9d).?d*/g),print$,例,6-2,my$string=11,13,17,22,101,33,001,003,0010,001000,15.5,171.77;,my result=split(/,/,$string);,map print$_.,”if$_16 (sort$a$b result);,阅读源码,别人的代码,知道或不知道功能。理解每段的含义。,谢谢,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!