小李的飞刀-浅谈正则表达式

行走江湖的武者和各种侠客,必定都有随身的武器。刀枪剑戟斧钺钩叉,十八般兵器都有人喜好。除了常规武器以外,还有很多人携带者飞刀()之类的暗器,以应不时之需。当然了,能够把飞镖玩到一击必杀境界的,就只有古龙笔下的李寻欢一人,大多数人都把这镖当做是辅助武器。不过,虽说是辅助,关键时刻也能起到大作用,甚至在很多场合也是必不可少的,少了就不舒服,就会吃亏。

和武者、侠客相似,程序设计者也需要有贴身常备的武器,而且除了常规武器以外,也需要有像飞刀这样的以巧拨千斤的、小巧但威力巨大的非常规武器,以应不时之需。是的,程序员也和行走江湖的武者一样,经常会遇到不太常见的非常规状况。正则表达式,就是程序员的飞刀。在日常编程活动中,只有它是不够的,但是在很多场合,没有了他,你就会事倍功半,干瞪眼吃大亏。相反,如果你有了它,虽不是时时处处可用,但一旦用上,威力无比。

尝试想象一下,你可能会随时面临这样的挑战:

@ 你需要把一个代码文件中的所有注释行删除掉,只留下纯粹的代码。或相反的要求。

@ 你需要把一个测试结果文件中,所有以字符@加数字开头的行提取出来。

…等等等等,类似这样的场合,你已经无法用最简单的字符串查找和替换来解决问题,因为你的匹配目标不再是一个具体的字符串,而是一个模式,这正是正则表达式最最最最最最擅长的地方,该他出场了

有相当一部分程序员,根本看不起正则表达式这么个小玩意儿,甚至有很多人根本不知其为何物。特别是从Windows平台起家的。而在Unix平台上,正则表达式会频繁地出现在有文本处理的地方。在Unix/Linux的编程世界里,如果你说你不懂正则表达式,估计会受到鄙视的。在2003年,我工作2年以后,有人正式地给我讲授过正则表达式,从那以后开始重视起来。至今已经7年过去了,这把小飞刀还随时揣在身上,它帮助我度过了无数的难关,现在每天都还在给我帮助,实在是堪称利器。

这篇文章不打算详细介绍正则表达式,而是浅谈其重要性。如果你就是瞧不起正则表达式或不了解正则表达式的程序员中的一员,我要重点提醒你,你正在错过一个重要的武器,多年以后,你必定会后悔的。你可以留心一下你目前常用的文本编辑器(例如UltraEdit,Notepad++, Sublime Text2等),搜索/替换工具等等文本处理软件,越来越多的工具开始完整地支持正则表达式,这是一个必然的趋势,而且足够看出正则表达式的重要性。可以不过分地讲,衡量一个文本处理软件的是否成熟、强大,支持正则表达式与否是非常关键的一点。同理,我再得寸进尺地推论一下,正则表达式也是衡量一个程序设计者是否专业的必备水准之一。

因此,请你千万不要错过正则表达式-这把和小李的飞刀一样锋利的神兵利器。也许,它会帮助你成为第二个小李噢!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值