windows下的正则式工具介绍之一:RegexBuddy
俗话说,工欲善其事,必先利其器。关于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版。






August 17, 2008 - 9:24 am
已经发送,请收邮件。
August 17, 2008 - 9:27 am
@wyf 已经发送,请慢用。
August 19, 2008 - 12:02 pm
我也想看看。。。。呵呵。。很有用的小工具啊。。
August 19, 2008 - 12:02 pm
忘记写邮箱了。。呵呵。。164423073@qq.com
多谢了。。
August 19, 2008 - 1:00 pm
已经发送链接,请查收。
August 22, 2008 - 5:44 pm
82094842!qq.com
谢谢!
August 22, 2008 - 7:37 pm
@Peter 已经发送链接,请查收、下载!
August 22, 2008 - 9:42 pm
你好,可以发一份给我吗?
August 22, 2008 - 9:46 pm
@Chris 已经发送链接。请查收。
August 27, 2008 - 10:11 am
博主,可以发份新版的3.11给我吗?谢谢
August 27, 2008 - 10:17 am
@stonezb 我手头只有完全版的3.10。已经将链接发到你的邮箱。3.11的共享版,请到www.regexbuddy.com去下载。
August 29, 2008 - 9:28 am
呵 好东东,可以发一份给我吗?楼主辛苦了!
August 29, 2008 - 9:37 am
Dear River 已经将链接发到您的邮箱。
August 29, 2008 - 1:24 pm
楼主,也请发给我一份,thanks~
August 29, 2008 - 1:31 pm
请给我发送一个 freesssbird@163.COM 多谢!
August 29, 2008 - 2:31 pm
@Charles 已经发送链接。
August 29, 2008 - 2:31 pm
@Syx 已经发送链接。
August 31, 2008 - 9:20 am
给我发一个,谢谢喽
greatking3000@163.com
August 31, 2008 - 10:00 am
@guoluo 已经发送链接,请查收。
September 1, 2008 - 10:32 am
给我发个链接吧。。
非常感谢~
September 1, 2008 - 11:22 am
@润物无声 已经发送,请慢用:)
September 16, 2008 - 12:34 pm
我也想要链接,呵呵,多谢多谢!
September 16, 2008 - 12:43 pm
@animalia 发过去了。请按图索骥。
September 16, 2008 - 5:03 pm
能向你索取 powerbuddy 以及 powergrep 吗?谢谢你的分享!
September 16, 2008 - 6:56 pm
@rasmus sent;
September 17, 2008 - 8:42 am
受教了,请给个链接!先谢了!
September 17, 2008 - 8:51 am
@lnnujxxy sent;
September 24, 2008 - 7:58 am
正在学习正则表达式,看了你的文章,觉得很棒
也想要份RegexBuddy和 PowerGREP 谢谢精彩文章,有机会还请多多指点
September 24, 2008 - 8:01 am
@phoenix 发过去了。请查收。
September 24, 2008 - 8:24 am
很想学习一下,看了以后觉得很有帮组,谢谢!
September 24, 2008 - 8:27 am
@guojm 链接发到你邮箱了。请顺藤摸瓜。
September 28, 2008 - 10:41 am
这个给我也发一个好吗?谢谢!
mathewchao@gmail.com
September 28, 2008 - 11:00 am
@math sent.
September 29, 2008 - 12:39 pm
烦请发给我一份好吗?谢谢!
003002@gmail.com
September 29, 2008 - 12:52 pm
@veryxiao sent.
November 7, 2008 - 2:47 am
非常感谢您的一些说明
请发给我这几种正则式编写软件的完整版?
十分谢谢
November 7, 2008 - 8:34 am
@foom regexbuddy & powergrep sent.
November 12, 2008 - 10:12 pm
请您给我发regexbuddy和powergrep完整版好吧?谢谢!
November 12, 2008 - 10:38 pm
@msimple sent.
November 12, 2008 - 10:39 pm
非常感谢,可以给我一份RegexBuddy和powergrep吗?
我的邮箱libinneed@sina.com
November 30, 2008 - 4:24 am
javababy@qq.com
请给我发一份,谢谢~~
December 1, 2008 - 1:15 am
@zg2 sent.
December 3, 2008 - 2:34 am
找了很久了,拜托
fu_hong_yu@hotmail.com
December 3, 2008 - 11:59 am
@Aaron Fu: sent.
December 23, 2008 - 3:13 am
Could you give me a copy of that, thanks in advance!
December 23, 2008 - 3:22 am
@yang sent.