当前位置:文档之家› RegexBuddy工具的使用教程

RegexBuddy工具的使用教程

RegexBuddy工具的使用教程(图文)12009-10-14 12:14一、什么是RegexBuddy使用了几天,个人感觉RegexBuddy 是学习正则表达式时的比较好的帮手。

它可以容易地建立你想要的正确的正则表达式。

清晰地推断他人所写的复杂的正则表达式。

它还可以用给出的实例字符串或文件快速地进行测试匹配,从而防止了在实际应用中出现错误。

RegexBuddy会在你的源代码中根据你所应用的特殊编程语言,自动生成带有正则表达式的代码段。

同时你也可以收集正则表达式到库中,以在未来重新使用。

二、获得RegexBuddy目前最新的版本是3.2.1(图2-1),于2008年12月9日发布的。

可以在/(RegexBuddy的官网)进行最新版本的下载和正版的购买。

图2-1 RegexBuddy的3.2.1版三、初步认识RegexBuddy安装比较简单(略过)首先,我们先对RegexBuddyg 产生一个整体的初步的认识,而不是设法解释所有的东西。

RegexBuddyg是相当易懂的容易的,所以我想经过简单大家应该能够基本正确地使用它。

默认情况下,RegexBuddy会在顶部显示正则表达式和上一次使用的历史,如图2-1。

图3-1 RegexBuddy的顶部底部会显示7个选项卡,分别是“Create”、“Test”、“Debug”、“Use”、“Library”、“GREP”、“Forum”(需要注册才能使用此功能),如图2-2。

图3-2 RegexBuddy的底部如果你的显示器较大,也可以分成两块平铺,你可以单击窗口最右上方工具栏上的“View”按键,在菜单中选择“Side by Side Layout”,这样你可以最大限度的同时查看两个窗口(图3-4)。

图3-3 Side by Side 样式四、开始建立第一个正则表达式接下来我们来用RegexBuddy来建立一个简单的正则表达式,以进一步加深对它的了解。

我们在文本域中直接输入:“^[0-9]*$”,也就是只允许有数字的正则表达式,然后在Test中输入下列测试文本: 90909、uiuiu、56464、787b、001、a65b (每输入一个换一行,文本内容任意更换)并选择“Line by line”,在此时界面如图4-1:图4-1 Example会发现匹配的字符串会被高亮显示,十分方便查找与正则表达式匹配的部分!RegexBuddy中“Create”与“Test”选项卡是你新建正则表达式时最有用的,一般我会按照之前选择的“Side by Side Layout”样式,这样就可以同时看见这两个面板。

在“Create”选项卡中,可以看到对这个正则表达式的解释的一个树状展示,其中的每一个节点对照着表达式中的一个元素块,在RegexBuddy中被称为一个“token”,我们点击其中的一个节点,就会在我们所输入的表达式的相应部分进行着重显示。

在分析他人所写的复杂的表达式的时候在这里查看会十分方便。

此选项卡中包含四个按键:1.“Explain Token”按键,打开RegexBuddy所自带的正则表达式指南,而且指向的正是你所选择的节点的正则表达式的语法规则的解释,十分方便!!2.“Insert Token”按键,会弹出一个下拉菜单(这个菜单会在以后介绍),其中包含了正则表达式里涉及的所有语法符号,可以进行选择,当然对于语法十分熟悉后,就可以不用这个菜单,直接在上面的文本输入区键入表达式了。

3.“Export”按键,可以将当前的表达式导出到文本文件、HTML文件或放入到剪贴板中。

4.“打印”按键,可以将当前的表达示打印出来。

俗话说,工欲善其事,必先利其器。

关于windows下的正则表达式工具,这里推荐的是:RegexBuddy和PowerGREP。

在linux下,也有好用的正则表达式工具,例如grep的兄弟们,只不过是都是基于命令行的。

而这两款windows下的小工具,其突出特点是可视化,允许尝试和预览,极大地方便了使用者。

RegexBuddy:网址是。

在编写正则式时,它提供可视化的支持、提示、调试方面的便利;在使用正则表达式时,它无私地将正则式转换为多种语言的字串,还提供了代码输出功能。

正则式助手,该称号名副其实。

基本界面正则式的基本功能无外乎搜索和替换。

在本文中,我们使用匹配Email的正则式,代码如下:view plaincopy to clipboardprint1.\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b此时,RegexBuddy的界面如图:在点击“Explain Token”时,能对当前的正则式片断的作用作出详细解释,例如当你把光标移动到\b上再点击Explain Token,就会激活帮助文档,自动定位到Word Boundaries这一段。

如果想对刚才编写的这条正则式进行测试和验证,可以点击“Test”进行测试。

这时,在下边的文本框输入所需要匹配测试的文字,例如dog@,匹配结果就以黄色背景色标出。

在本例中,你或许没有得到正确的匹配,呵呵,那是正常的。

为什么?答案见文章结尾。

拷贝粘贴RegexBuddy能把正则式以多种字符串格式拷贝出来。

还是刚才那条正则式,根据需要,它可以被拷贝为:view plaincopy to clipboardprint1.'\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b'2."\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b"3.'/\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b/i''\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b' --editorbr--"\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b" --editorbr--'/\\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功能就可以大显身手了。

我随便打开了一个饭否网页,对其源代码中的消息部分(<divid=“stream”>与</div>之内)的文本进行了处理,使用如下正则式删除了所有的尖括号内容,只留下普通文本。

使用的正则式为:view plaincopy to clipboardprint1.<[^>]+><[^>]+>软件界面以及运行结果请见下图。

结尾:关于本文开头提出的小问题,细心的你或许一下子就能看出答案了!见下图:只要选中Case insensitive选项中OK啦!如果你没有找到,或许是因为该软件是英文的,一时间您没有注意到该选项;或者您对正则式还不太熟悉。

相关主题