windows下的正则式工具介绍之一:RegexBuddy

April 30th, 2008 Categories: 软件

RegexBuddy

俗话说,工欲善其事,必先利其器。关于windows下的正则表达式工具,这里推荐的是:RegexBuddy和PowerGREP。在linux下,也有好用的正则表达式工具,例如grep的兄弟们,只不过是都是基于命令行的。而这两款windows下的小工具,其突出特点是可视化,允许尝试和预览,极大地方便了使用者。

RegexBuddy:网址是http://www.regexbuddy.com。在编写正则式时,它提供可视化的支持、提示、调试方面的便利;在使用正则表达式时,它无私地将正则式转换为多种语言的字串,还提供了代码输出功能。正则式助手,该称号名副其实。

基本界面

正则式的基本功能无外乎搜索和替换。在本文中,我们使用匹配Email的正则式,代码如下:

1
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

此时,RegexBuddy的界面如图:

regex001

在点击“Explain Token”时,能对当前的正则式片断的作用作出详细解释,例如当你把光标移动到\b上再点击Explain Token,就会激活帮助文档,自动定位到Word Boundaries这一段。

如果想对刚才编写的这条正则式进行测试和验证,可以点击“Test”进行测试。这时,在下边的文本框输入所需要匹配测试的文字,例如dog@animals.com,匹配结果就以黄色背景色标出。在本例中,你或许没有得到正确的匹配,呵呵,那是正常的。为什么?答案见文章结尾。

regex002

拷贝粘贴

RegexBuddy能把正则式以多种字符串格式拷贝出来。还是刚才那条正则式,根据需要,它可以被拷贝为:

1
2
3
'\\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菜单里,如下图所示。你不必为单双引号、正反斜线操心了。

regex004_menu

在paste菜单项中也有类似应用,不赘述。

正则式->代码

如果你想把刚才编写好的正则式应用在程序中,这里还有一个选项:Use,界面见下图:

regex004_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>之内)的文本进行了处理,使用如下正则式删除了所有的尖括号内容,只留下普通文本。

使用的正则式为:

1
<[^>]+>

软件界面以及运行结果请见下图。



结尾:

关于本文开头提出的小问题,细心的你或许一下子就能看出答案了!见下图:

regex003

只要选中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版。

Tags: , , ,

100 Responses to “windows下的正则式工具介绍之一:RegexBuddy”

  1. 那个谁
    May 2nd, 2008 at 16:51
    1

    强大的样子,过会儿去试试!

  2. May 3rd, 2008 at 10:35
    2

    该软件在wine的支持下,也可以在linux下运行的

  3. May 6th, 2008 at 11:02
    3

    看起来很强大,等一下试

  4. lxmxn
    May 25th, 2008 at 07:28
    4

    麻烦兄弟给我一套 regexbuddy 吧,多谢~
    lxmxn520 Gmail.com

  5. lls
    June 13th, 2008 at 23:36
    5

    非常感谢你的无私分享.我一直在找,无意中在你这里看见了,给我发一份吧,连同 PowerGREP 一起好吗?

    com800@gmail.com

  6. rex
    June 14th, 2008 at 00:10
    6

    @lls:
    两个软件均已发到您的邮箱。请查收。欢迎常来本站。并请到http://bbs.iregex.org讨论正则表达式。

  7. lls
    June 14th, 2008 at 04:06
    7

    没有收到呢?收到你的邮件,但没有附件啊

  8. lls
    June 14th, 2008 at 04:14
    8

    不好意思,你是用另外的邮箱发的链接,收到了,谢谢!! 但好象生效了哦

  9. lls
    June 14th, 2008 at 04:34
    9

    谢谢了,下载了,刚好是网络有点问题.
    会常来看你的:)

  10. June 19th, 2008 at 08:46
    10

    无私奉贤,值得学习~!
    dreambt@126.com

  11. rex
    June 19th, 2008 at 09:01
    11

    链接发你邮箱了,请前往下载。

  12. ToTo
    June 26th, 2008 at 23:10
    12

    你好,我想要RegexBuddy全功能最新版,谢谢分享

  13. creesed
    June 27th, 2008 at 13:31
    13

    能发给我一份吗?谢谢!
    sandingyn#gmail.com

  14. rex
    June 28th, 2008 at 08:19
    14

    @ToTo:
    已经把RegexBuddy链接发到您的邮箱,请查收。

  15. rex
    June 28th, 2008 at 08:19
    15

    @creesed:
    已经把RegexBuddy链接发到您的邮箱,请查收。

  16. ray
    June 28th, 2008 at 13:21
    16

    你好,能发一份给我吗?谢谢
    rx.wen@yahoo.com.cn

  17. rex
    June 28th, 2008 at 13:29
    17

    @ray:

    已经发送链接,请查收。

  18. ray
    June 28th, 2008 at 18:19
    18

    Thank you so much!!

  19. 墙外行人
    July 3rd, 2008 at 10:38
    19

    我要这个工具呀,谢谢啦.
    85161676@qq.com

  20. rex
    July 3rd, 2008 at 10:44
    20

    @墙外行人:
    已经发送。

  21. bluerui
    July 14th, 2008 at 18:42
    21

    很好很强大,可以连同 PowerGREP 发一份给我好吗?
    感谢你无私的分享.谢谢!
    wzrui@21c.com

  22. rex
    July 17th, 2008 at 10:13
    22

    @bluerui 已经发送,请查收。

  23. qatang
    July 21st, 2008 at 17:05
    23

    qatang@gmail.com
    谢啦!

  24. rex
    July 22nd, 2008 at 11:11
    24

    dear qatang,

    已经发送链接到您的邮箱。谢谢光临。

  25. markluo
    July 24th, 2008 at 20:04
    25

    非常感谢你的无私分享,原来在QQ上存了一个,这几天要用下载不下来了.在google上找就找到这里了.请给我发一份,谢谢

  26. markluo2008
    July 25th, 2008 at 17:43
    26

    收到了.谢谢!

  27. libo
    July 26th, 2008 at 10:29
    27

    很好很强大,可以连同 PowerGREP 发一份给我好吗?先谢过!
    409758974@qq.com

  28. rex
    July 26th, 2008 at 13:45
    28

    已经发送,请查收。

  29. Norman
    July 31st, 2008 at 21:50
    29

    请也给我发一份好吗?为语料库奋斗!

  30. Norman
    July 31st, 2008 at 21:51
    30

    请也给我发一份好吗?为语料库奋斗!norman_lixinguo@yahoo.com.cn

  31. rex
    August 1st, 2008 at 08:20
    31

    dear Norman,

    已经发送链接到您的邮箱。欢迎常来,有正则问题到bbs.iregex.org交流.

  32. August 1st, 2008 at 20:09
    32

    majianle[at]gmail.com
    谢谢啦

  33. rex
    August 2nd, 2008 at 08:04
    33

    @TearCry: 已经发送,请享用:)

  34. hello
    August 3rd, 2008 at 11:10
    34

    测试。不客气。

  35. wangfengsheng
    August 7th, 2008 at 01:59
    35

    你好,我也想要PowerGREP 和RegexBuddy,谢谢分享

  36. rex
    August 7th, 2008 at 06:05
    36

    @wangfengsheng
    已经发送。请查收。有正则问题请来http://bbs.iregex.org交流。

  37. hamburg
    August 7th, 2008 at 14:35
    37

    感谢楼主分享~

  38. hamburg
    August 7th, 2008 at 14:35
    38

    420001200@qq.com
    非常感谢楼主的分享~

  39. Basil
    August 9th, 2008 at 20:22
    39

    看了你的文章 想也要份RegexBuddy和 PowerGREP 谢谢 weihai2003@126.com

  40. rex
    August 10th, 2008 at 14:26
    40

    没问题!已经把链接发到你邮箱。

  41. hamburg
    August 11th, 2008 at 09:19
    41

    楼主 给我也发一份,非常需要~
    420001200@qq.com

  42. rex
    August 11th, 2008 at 09:24
    42

    @hamburg 已经发送。请查收。

  43. happyhanbao
    August 11th, 2008 at 09:49
    43

    楼主,我已收到你发送的软件,但是很郁闷很郁闷我一收,qq邮箱就说忙。
    麻烦楼主再发一次~ 谢谢~~~

    happyhanbao@163.com

  44. hamburg
    August 11th, 2008 at 09:50
    44

    已收到,但是下载不了,可能是qq邮箱的问题吧~ 谢谢
    请在下面留言的163邮箱 再发一次~ 感谢了~

  45. rex
    August 11th, 2008 at 09:52
    45

    没问题,立即重发。

  46. happyhanbao
    August 11th, 2008 at 10:26
    46

    谢谢您的耐心,已经安装,正在使用。谢谢~

  47. August 15th, 2008 at 10:23
    47

    麻烦给我发一份,谢谢!
    看了您关于正则的文章感觉非常受用
    dearymz#163.com

  48. studynet
    August 15th, 2008 at 11:21
    48

    麻烦给我发一份,谢谢!
    看了您关于正则的文章感觉非常受用
    jiedushi@163.com

  49. Xiazhu152
    August 16th, 2008 at 11:19
    49

    能给我发一份吗

  50. wyf
    August 16th, 2008 at 22:08
    50

    麻烦您给我发一份,谢谢!
    看了您关于正则的文章感觉非常受用
    wypyf111000@126.com

Comment pages
Comments are closed.