加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl学习笔记(8)

发布时间:2020-12-16 00:27:02 所属栏目:大数据 来源:网络整理
导读:^一行的开头 $一行的结尾 例如/^$/匹配空行。 用转义特殊字符。 //i,后面跟个i不区分大小写。 //g,后面跟个g匹配全部。没有g只匹配一次。 s///,前面跟个s做替换。 grep对列表中的元素逐一进行模式匹配操作。 练习(f81.pl): #!/usr/bin/perl?-w ? $pat=S

^一行的开头 $一行的结尾 例如/^$/匹配空行。
用转义特殊字符。
//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($an); ?
  10. ?
  11. @a_m=grep?/A/i,("1?aaa","2?hello?world!","3?abc","4?a?b?c"); ?
  12. print?qq(@a_mn); ?
  13. ?
  14. @bb=("1a","bb?a","aaa?board"); ?
  15. @a_m=grep?s/A/X/ig,@bb; ?
  16. print?qq(@a_m=@a_mn); ?
  17. print?qq(@bb=@bbn); ?

$ 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):
http://apps.hi.baidu.com/share/detail/20369196

下面这本书是公认的好书:
精通正则表达式(第3版)中文版.(美)Jeffrey.E.F.Friedl
英文书名叫:Mastering Regular Expressions

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读