June 18, 2007
从今天开始, 我将陆陆续续把我所使用的一些软件都写出来, 算是一个总结吧。 也给需要用的朋友一个参考。
今天先介绍的一个是关于编写正则表达式的工具 — RegexBuddy。
说起正则表达式, 很多人可能都听说过, 但却不一定用过。 正则表达式在我的脑海中一直认为是一个很高深的东西, 这个东西用的好让你事半功倍, 用的不好让你事倍功半。 关键就一点, 看你用的如何。我一直有学习正则表达式, 但因为实在用的地方太少, 所以总是学了忘, 忘了继续学。 用《家有儿女》这部片子中刘星的话来说就是:“学了忘, 忘了学, 学了还得忘”。 我也正是这样, 因为用的地方太少, 所以学了还得忘, 我学正则表达式最后是从使用firefox的adblock扩展开始的, 如果你也用过这个扩展, 你应该能够体会到正则表达式的强大能力, 等会儿我会举例说明。 好了, 还是言归正传。
首先来介绍一下正则表达式的概念, 这个概念很简单:
正则表达式
是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式,即/expression/
但一般来说, 概念越简单, 说明这个东西的不可确定性也就越大, 也就越难掌握, 不错, 正则表达式正是这么个东西, 看起来很简单, 用起来可不容易。 如果你已经学到炉火纯青的地步了, 那你就不用看这个文章, 因为你根本不需要工具, 你写下去的正则表达式肯定是对的了。 而RegexBuddy并不是一个用来帮你写正则表达式的工具, 而是用来帮你查找正则表达式中的错误, 用来验证正则表达式的工具。
现在就来说RegexBuddy了, 这个工具是我用过的感觉最好的校验regular expression 正确性的工具了。 你可以把你写出来的正则表达式copy到这个软件中, 然后再在下面的test中粘帖一个你需要匹配的文本, 看看是不是被成功的匹配就可以知道你的正则表达式是不是符合要求了。 我刚开始用正则表达式的时候, 为了匹配网页中的广告, 经常性写了一个表达式, 却发现无法正确的匹配, 或者匹配过头, 却还经常性找不到错误所在, 用了RegexBuddy, 它可以很清晰的帮我定位正则表达式中各个字符的分界点, 可以很容易的找到问题的所在, 而且还可以用来测试它到底匹配了你想匹配文本中的那些文本。我最后用这个工具校验, 写了一个可以匹配大部分广告的adblock regular expression, 可以匹配大部分的广告。
[\?\/\.\-_](wait|get)?(adv|a[\-_]?d[\-_]?s*_*|banners?|pop(me)?)(codes?|clicks?|union|sence|fshow|vers?|files?|views?|banners?|clients?|ima?g.*|sina|senses?|huajun\d*|\d*)?([\-_]+.*)?[\?\/\.\-_]
对于这么长的一个regular expression, 我的水平的确很难找到它内在的错误, 不过RegexBuddy可以很好的帮我分清各个分界点, 还有各个文字模式的作用。具体请看图
不过这个软件是共享的, 如果你要使用全部的功能, 就要花钱购买了!
您喜欢本文吗?即刻订阅"偶爱偶家",精彩文章不再错过!现在就给我们留个话吗?
Random Posts



11 responses to "RegexBuddy轻松编写正则表达式"
据我最近的观察,写软件和网上新的应用博客浏览量就会上升,嘿嘿,不知道是不是小众拉了我一把。
[Reply]
错了,RegexBuddy恰恰是书写Regex的好帮手,不仅仅是检验正确性而已。它的Debug功能也不错。
[Reply]
@lxl
是的,这个ms应该是是普遍规律了, 写新软件可以拉拢人气. 不过我还是想写我自己的东西. 我本来的定位就是流水账, 我看你的抓虾订阅很高.
@leo
可能我们的理解不同, 我的理解是regexbuddy并不能给你指错, 它只能是用它的方法来校对, 然后最终的错误还是要自己去查找, 所以我觉得他不是一个书写器, 不过regex也用不着书写的IDE, 因为本来就是一个文本而已, 没有固定的写法(可能这句你也会反驳我的). 所以我还是他用作一个debug和校验工具.
[Reply]
看不懂,不过还是支持一下!嘿嘿..
[Reply]
好东西啊,早就想要这么个东东了。感觉现在插件太多,全部是库操作,其次如果想做一个文本内容修改,找html tag如: 等等,可以做到不动模板修改局部输出。
[Reply]
有人气的博客无外呼两种,要么是小而零碎如engarget,是横向的,要么是专题的大虾如华声军事100,是纵向的。就个人能力来说,一般倾向于后者,因为一己之力不可能有那么多的消息,而且就算有也大部分是转来转去。现在的人都很懒,希望看一个地方就全了,所以小而碎当然是全了,专而深呢,当然是看你这一个地方,基本此类别的无出其右,也全了。
中国现在就博客大分类来说热的也是两种,科技(IT偏2.0)博客(keso,月光),还有就是非体制内的文人博客(zousuper, 三表,和菜头,老罗,韩寒之类)
我最近准备写篇有关个人博客的东东,名字先想好:adsense-博客圈的魔戒。
啥叫“魔戒”,再慢慢琢磨。
[Reply]
我奇怪了, 央街浪子, 这个Regexbuddy跟插件有什么关系吗? 我愣是没有看出来, 郁闷。
其实在这里的博客, 主要关注于技术的文章和软件介绍的文章很受欢迎。 我的一片就说了wordpress 2.2发布了的博客都被人挖到了首页, 这个这跟我们缺乏软件有关系。
不过我可不想做一个专业的软件博客, 这样我还不如做个站点算了。 我还是喜欢我们的流水账。点点滴滴, 却是留下的岁月之痕!
[Reply]
嗯,就是,还是要自己喜欢的写才行,我上次内容里面说了以后写点网络应用和自己在用的软件,再记记生活。差不多也是流水帐!
我刚才看抓虾了,貌似多了10个人,不知道是怎么订阅的呢,最近小众帮了我一把,呵呵
[Reply]
正则式的应用主要在文本查找和替换,在貌似无规律的大量文本中找到规律,减轻人们一般需要按照特例来处理的劳动。适合一般应用主业务逻辑外的前序,后续或者额外处理。ff可以用monkey来自定义广告网站地址拦截,自动搜索文本高亮,wordpress可以用来过滤输入输出,我在mysql转码的文章里也用到了SED,只是在wp网站上就讲到插件了,哈哈。
[Reply]
我是这样的,喜欢一阵子,装上一阵子,用一阵子,研究一阵子,然后转方向,最近喜欢上了wp,就和去年喜欢上了vbb就开了个坛子一样。但是做过的事情总会留下痕迹。但是blog似乎不同,留下的点滴痕迹最终会无意间留下一个个人网站。至于推广,本身也是一种很有意思的实验行为。在google analytics中你会看到很多很有意思的数据,甚至能大概推测这背后的含义。“互联网上没人知道你是一条狗”这句早年的互联网经典大概已经不适用了。你不再是一个仅仅用浏览器read only的受众
[Reply]
http://www.6inchboot.com/
UGG boots;cheap UGG;UGG classic
[Reply]