博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
perl学习笔记(8)
阅读量:7009 次
发布时间:2019-06-28

本文共 959 字,大约阅读时间需要 3 分钟。

^一行的开头 $一行的结尾 例如/^$/匹配空行。

用\转义特殊字符。
//i,后面跟个i不区分大小写。
//g,后面跟个g匹配全部。没有g只匹配一次。
s///,前面跟个s做替换。
grep对列表中的元素逐一进行模式匹配操作。

练习(f81.pl):

 
  1. #!/usr/bin/perl -w  
  2. $pat=<STDIN>;  
  3. chomp $pat;  
  4. $a="The phrase that pays";  
  5. if ($a=~/$pat/i){  
  6.         print "\$_ contains the pattern $pat \n";  
  7. }  
  8. $a=~s/phrase/$pat/;  
  9. print qq($a\n);  
  10.  
  11. @a_m=grep /A/i,("1 aaa","2 hello world!","3 abc","4 a b c");  
  12. print qq(@a_m\n);  
  13.  
  14. @bb=("1a","bb a","aaa board");  
  15. @a_m=grep s/A/X/ig,@bb;  
  16. print qq(\@a_m=@a_m\n);  
  17. print qq(\@bb=@bb\n);  

$ perl f81.pl

www
The www that pays
1 aaa 3 abc 4 a b c
@a_m=1X bb X XXX boXrd
@bb=1X bb X XXX boXrd
 

正则表达式不好记忆,理解起来也挺费脑子,这就决定了贡献正则表达式代码只能是少数人。在具体实践中,去搜索别人已经写好的正则表达式,拿过来测一测,改一改自己用是比较好的方式。自己有好的正则表达式代码也不妨贡献出来。如果是自己写正则表达式,建议简单用用就好。另外就是如果正则表达式比较复杂,最好有注释,别让后面维护代码的人骂你。

这个页面上介绍了几个不错的正则表达式工具(我个人比较欣赏RegexBuddy):

下面这本书是公认的好书:

精通正则表达式(第3版)中文版.(美)Jeffrey.E.F.Friedl
英文书名叫:Mastering Regular Expressions

关于正则表达式,就学习到这里吧。

 本文转自 ztfriend 51CTO博客,原文链接:http://blog.51cto.com/idata/806868,如需转载请自行联系原作者

你可能感兴趣的文章