[译]正则表达式:从菜鸟到大师
Feb 3rd
Author: Jan Goyvaerts
Publish Date: 2 Feb. 2009
Blog entry: http://www.regexguru.com/2009/02/from-regex-newbie-to-regex-guru/
Translated By: Rex (http://iregex.org)
Rex注:本文是Jan Goyvaerts为自己的著作《Regular Expression Cookbook》写的序言中的一段。
One of my last tasks for the Regular Expression Cookbook was to write the preface, including my author bio. I told the story of how I went from my first real encounter with regular expressions in 2000, to the expert I am almost a decade later.
《Regular Expression Cookbook》即将完工,剩余的工作之一是作序,包括写我的作者小传。我讲述了自己如何在2000年第一次遭遇正则表达式,并在近乎十年之后才成为专家的经历。
RegexBuddy3.2.1完全版
Jan 11th
感谢网友WNlord提供信息,我有幸下载到了RegexBuddy当前的最新版3.2.1。该版本是零售完全版,可以做生成Portable Installation。不知道RegexBuddy功能的请自行站内搜索。下载地址见文章末尾。
Read the rest of this entry »
正则式软件中的TotalCMD:RegexBuddy
Dec 27th
之前我爱正则表达式已经介绍过,RegexBuddy 是windows下(在linux下可以使用wine调用)一款超强的正则式辅助编写软件。在它的帮助下,你可以轻松编写你所需要的正则表达式,清晰地理解别人写的正则表达式,快速测试正则式与目标文本或文件是否匹配并避免出现错误。它能帮你把正则表达式转换成你所需要的编程语言的格式,帮你收集并详细记录正则式代码库,以便将来重新使用。它还能与你最喜欢的搜索工具、编辑器集成在一起,招之即来。在我所有使用过的正则式软件中,以RegexBuddy为最强,称之为正则式软件中的TotalCMD,毫不为过。
原来本站以留言索取的形式,向诸位同好提供过3.1.0版。在网友那个谁的协助下,我得到了更新一点的版本,3.2.0,附在文末,请按需下载。
Just Great Software 动态
Dec 22nd
http://www.just-great-software.com/的著名产品有powergrep和regexbuddy。今天该网站释出消息,主要有以下2点:
- Jan Goyvaerts近来在写一本关于正则表达式的书。目前已经脱稿,有望在2009年4月份由O’Reilly出版。作者坦承,该书或许是关于正则式的最实用的著作。
- http://www.just-great-software.com/在08年的新产品不多,只对原有的几款产品作了次要升级。好消息是,自07年就开始酝酿的一款新软件的攻坚工作已经完成,会在2009年发布1.0。希望在4月份之前发布。
Windows下的正则表达式工具之五——经典的Regulator
Dec 17th
本文介绍的the Regulator 2.0 与上一篇文章介绍的Expresso一样,都是颇有年头的软件:Expresso的最后更新日期似乎是2007年6月30日;the Regulator 2.0的上次更新,更是可追溯到2004年。可是,在没有RegexBuddy的日子里,the Regulator 可算是元老呢!MSDN上有篇文章《Ten Must-Have Tools Every Developer Should Download Now》,介绍了开发者必备的10款工具之一就有the Regulator。作者Roy Osherove在regulator的帮助文件中说,自己的Regulator的创意就来自于Expresso。
Regulator的界面,比Expresso要新潮,与以前介绍过的Mtracer有几分相像。 Read the rest of this entry »
Windows下的正则表达式工具之四——强大而免费的Expresso
Dec 13th
曾经沧海难为水,除却巫山不是云。用过了RegexBuddy,再用其它的正则式辅助软件,总有些不习惯。然而本人幸好不是固步自封之辈,任何时候都勇于尝试新工具,体验新特征。这不,最近知道了Expresso,第一时间就想体验一把,将感受写在这里。
windows下的正则式工具介绍之三:MTracer2.0介绍以及与RegexBuddy比较
Sep 16th
RegexBuddy和PowerGrep是我在windows下常用的两款正则式工具。前者是帮助编写正则式的辅助工具,后者是进行批量搜索替换的实用工具。这两款软件都是外国人写的。今天介绍国人史寿伟先生写的一款正则式工具,MTracer 2.0。
windows下的正则式工具介绍之二:powergrep
May 5th
上文介绍了RegexBuddy,本文介绍另一款windows下的正则式软件:PowerGREP,号称“The Most Powerful GREP Tool for Windows”,windows下最强大的GREP工具。看清楚了,是最强大,而非之一。与RegexBuddy一样,也是商业软件,其售价为US$149.00,合人民币1000有奇。如果说RegexBuddy是撰写正则式的贴心助手,那么PowerGREP则是应用正则式在文本文件中搜索替换的强大工具。现在我们看看,它究竟有什么功能敢号称最强。
基本界面
点击可以看大图。另外,还有一组图片来自powergrep官网,附上了官网的部分介绍,以及个人评论。
- 内容搜索图片,点这里;
在本抓图中,我搜索了c:\My Documents\My Web Sites文件夹及其子目录下所有的html文件。我使用了一条正则表达式把搜索范围限定在HTML tag之内,使用另一条正则式在这些标记中搜索所有的email地址。 - 搜索和替换,点这里和这里;
一个好用的功能是可以预览结果而不是立即替换。匹配结果以黄色标出。双击匹配就能打开对应的文档并检验其内容。
点击执行后,颜色改变,表示已经实施替换。 - 收集信息和统计数据,点这里;
本例是“检测Apache网络日志--google search terms”的例子。本例使用的正则式在PowerGREP帮助文档中有详细讲解。 - 灵活的“撤消”历史记录,让你不再抓狂,点这里;
在执行替换的同时,PowerGREP已经备份了原文件。只要你没有手动删除这些备份的文件,你可以随便撤消你做过的任何操作。世界上真有后悔药的呀。 - 搜索PDF文档,点这里;
PDF也能使用正则式进行搜索?当然了,你没有看错。只是,要确保PDF文档中你要搜索的内容是文字而非图像。也就是说,扫描版的PDF不享受此功能的哟。 - 在MS word 文档中搜索,点这里;
这个功能也十分有用。我记得还有个东东叫ViEmu for Word & Outlook,可以在word和outlook中模拟vim,当然可以使用正则式搜索替换了。不过,ViEmu一来也是收费软件(在2008年5月31日之前是79美刀,之后是99美刀),我还没有找到免费版本;二来其正则式是vim风格的,只习惯Perl风格的同学可能不太习惯。在google documents里也支持正则式搜索了,具体语法、风格尚未广泛测试。 - 在MS Excel中搜索,点这里;
同样也是批量搜索、替换。不单单是对一个文档、一个sheet。 - 以16进制模式,在2进制文档中搜索,点这里;
跟二进制编辑器界面类似,多了正则式批量搜索替换功能。 - 在zip压缩文档中搜索,点这里;
把zip文件当作普通文件夹来搜索。很强大吧? - 正则表达式序列,点这里;
大多数正则式工具一次只支持一条正则式的操作。而PowerGREP可以一次执行多条正则式!使用checkbox来进行多项选择。 - 定制颜色显示,点这里;
该功能比较一般。除非软件中的颜色设置特傻,一般我是不会改变默认颜色搭配的。
功能演示
PowerGREP官网还提供了一组flash做的demo,见下。
- 使用正则式匹配email地址(2′47”)。点这里;
- 升级版权信息(3′38)。点这里;
- 与RegexBuddy的无缝链接(1′57”),点这里;两个软件是亲兄弟,当然哥俩好啦!
- 文件选择(3′08”),点这里;PowerGREP提供了贴心的特性,来帮助你筛选需要的文档。
- 其它特性(8′37”),点这里;总而言之,PowerGREP是功能强大。自己发掘吧!
软件下载
目前其最新版为3.4.2,更新于2008年1月18日。其官网为www.powergrep.com,可以去下载其最新版试用。该软件为商业软件。
- 如果你偶然路过,尝新而已,那只需下载试用版即可;
- 如果你觉得好用、准备常用、手有余钱、非正版不用,不妨花美金购买;要花人民币1000多块哟^_^
如果你喜欢它,同时你认为优秀的网络资源是应该和朋友免费分享的,从而想获得该软件的全功能免费版,好吧,我也成全你,请在本文后留言(附邮箱),我会把这个小东西的链接发给你(最新版为3.4.2,我手头的全功能版为3.3.3,也足够用了)。更新:
请移步至此下载PowerGREP 3.5.0版。
———————————————————————————————————
windows下的正则式工具介绍之一:RegexBuddy
Apr 30th
俗话说,工欲善其事,必先利其器。关于windows下的正则表达式工具,这里推荐的是:RegexBuddy和PowerGREP。在linux下,也有好用的正则表达式工具,例如grep的兄弟们,只不过是都是基于命令行的。而这两款windows下的小工具,其突出特点是可视化,允许尝试和预览,极大地方便了使用者。
RegexBuddy:网址是http://www.regexbuddy.com。在编写正则式时,它提供可视化的支持、提示、调试方面的便利;在使用正则表达式时,它无私地将正则式转换为多种语言的字串,还提供了代码输出功能。正则式助手,该称号名副其实。
基本界面
正则式的基本功能无外乎搜索和替换。在本文中,我们使用匹配Email的正则式,代码如下:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
此时,RegexBuddy的界面如图:
在点击“Explain Token”时,能对当前的正则式片断的作用作出详细解释,例如当你把光标移动到\b上再点击Explain Token,就会激活帮助文档,自动定位到Word Boundaries这一段。
如果想对刚才编写的这条正则式进行测试和验证,可以点击“Test”进行测试。这时,在下边的文本框输入所需要匹配测试的文字,例如dog@animals.com,匹配结果就以黄色背景色标出。在本例中,你或许没有得到正确的匹配,呵呵,那是正常的。为什么?答案见文章结尾。
拷贝粘贴
RegexBuddy能把正则式以多种字符串格式拷贝出来。还是刚才那条正则式,根据需要,它可以被拷贝为:
'\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b' "\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b" '/\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b/i'
具体的选项在copy菜单里,如下图所示。你不必为单双引号、正反斜线操心了。
在paste菜单项中也有类似应用,不赘述。
正则式->代码
如果你想把刚才编写好的正则式应用在程序中,这里还有一个选项:Use,界面见下图:
在上面的match和replace之间点击,其代码也相应自动调整;当选取不同的language时,代码也会相应调整。它支持的语言格式为:
- C#
- Delphi(NET/Win32)
- Java/JavaScript/ECMAScript
- PCRE
- PHP
- Perl
- Python
- RealBasic
- Ruby
- VB
另外,它还有function选项,分别用以实现下述功能:
- If/else branch whethe the regex matches (part of) a string. If/else验证正则式是否匹配字串(的一部分)。 最常用的功能。
- If/else branch whethe the regex matches a string entirely. If/else验证正则式是否匹配整条字串。
- Get the part of a string matched by the regex. 取得字串中与正则式匹配的部分。Get the part of a string matched by a capturing group. 取得字串中所匹配的捕获组。这一条我也是刚刚知道,很有用哟。
- Get an array of all regex matches in a string.将字串中所有的匹配保存到数组中。
- Iterate over all matches in a string。列出字串中所有的匹配项。(例如,在使用正则式’\w’来匹配字串’abc’时,本function列出的内容为’a',’b',’c’.)。单词iterate的含义是重复。
- Comment with RegexBuddy’s regex tree. RegexBuddy的正则树的注释。
文本分割split
如果需要处理的文本是以某种分隔符隔开的,而该种分隔符恰好又能使用正则式描述,(例如html标签),此时regexbuddy的split功能就可以大显身手了。我随便打开了一个饭否网页,对其源代码中的消息部分(<div id=“stream”>与</div>之内)的文本进行了处理,使用如下正则式删除了所有的尖括号内容,只留下普通文本。
使用的正则式为:
<[^>]+>
软件界面以及运行结果请见下图。
结尾:
关于本文开头提出的小问题,细心的你或许一下子就能看出答案了!见下图:
只要选中Case insensitive选项中OK啦!如果你没有找到,或许是因为该软件是英文的,一时间您没有注意到该选项;或者您对正则式还不太熟悉。
软件下载
上文已经提到,其官网为www.regexbuddy.com,可以去下载其最新版试用。该软件为商业软件。
- 如果你偶然路过,尝新而已,那只需下载试用版即可;
- 如果你觉得好用、准备常用、手有余钱、非正版不用,不妨花美金购买;
- 如果你喜欢它,同时你认为优秀的网络资源是应该和朋友免费分享的,从而想获得该软件的全功能免费版,好吧,我也成全你,请在本文后留言(附邮箱),我会把这个小东西的链接发给你(最新版为3.1.1,我手头的全功能版为3.1.0,也足够用了)。
下篇文章将要介绍另一款regex工具:PowerGREP,敬请期待。
本文为rex.zhasm原创,原文地址在http://iregex.org/blog/y2008/m04/d30/regexbuddyregexbuddy.html,可以在遵循CC协议的条件下转载。
————————————-
2008.12.26 更新:
本文已经关闭评论,即将发布3.2.0完全版。不会晚于2008.12.28。敬请期待。
2008.12.28 更新:
请移步至此下载RegexBuddy 3.2.0版。








Comments