windows下的正则式工具介绍之三:MTracer2.0介绍以及与RegexBuddy比较
2008.09.16 11:29 am
RegexBuddy和PowerGrep是我在windows下常用的两款正则式工具。前者是帮助编写正则式的辅助工具,后者是进行批量搜索替换的实用工具。这两款软件都是外国人写的。今天介绍国人史寿伟先生写的一款正则式工具,MTracer 2.0。
MTracer 2.0软件版本
MTracer2.0全名是RegexMatchTracer,官方主页在regexlab.com。上面说最近更新日期是2007.10.07,不过,从我今天下载的程序的修改日期来看,是2008.09.13。变化是,之前作者提供的是绿色的程序,现在提供的是msi的安装包。 本文以下提到MTracer时,若无特殊说明,均指MTracer2.0。
MTracer软件特性
作为一款正则表达式撰写辅助程序,它拥有查找匹配、替换模式、分割模式,可以分别进行相应操作。前两种用的比较多,各种语言或正则式工具都有相应语句或函数来实现;第三种分割模式是指使用正则表达式来描述字符串的分割符,以便将字串分割成子串数组。举个简单的例子来说,可以使用正则式\d+;?将abcd12;sdf55656asdfasd82asd33x字串分割成子串数组:
- abcd
- sdf
- asdfasd
- asd
- x
在实际操作时,你总会遇到使用分割模式才能最有效率地解决的问题。
除了一般的选项(忽略大小写、单行\多行、全局),它提供了从右向左、扩展模式两种匹配选项。
从右向左:平时查找字串最右边的正则式匹配,可以借助于?和$来定位。而在MTracer下,这款比较令人耳目一新的选项十分好玩,虽然我还没有在实际操作时遇到过确需此选项的例子。
扩展模式:包括如下选项:
- 注释 (?#xxx):在正则式中加入注释以便提高可读性;
- 模式修改符 (?ismg-ismg):小范围内修改匹配模式;
- 非捕获组 (?:xxx):匹配而不捕获,便于计数,同时还可以节省内存,提高效率(根据《精通正则表达式》的说法);
- 预搜索(零宽度断言):十分有用的匹配选项,只匹配位置,而不消耗字符;有四种模式,详见手册;
- 独立表达式 (?>pattern):此选项在《精通正则表达式》中,被余晟先生翻译为“固化分组”,即无论匹配成功与否,内部都不进行回退,都不会再次尝试匹配;
- 条件表达式(?(x)y|z):与C语言的三目操作符类似,x条件为真则进行y匹配,否则进行z匹配。其中x部分有四种模式,详见手册;
- 递归表达式 (?R):对另一部分子表达式的引用,而不是对其匹配结果的引用。当被引用的表达式包含自身,则形成递归引用。
个人比较常用的选项是非捕获组和预搜索。
MTracer最有用的特性
相对于另一款正则式撰写辅助程序RegexBuddy而言,MTracer最有用的特性是中文的正则式分析树。虽然RegexBuddy也有此功能,但是MTracer的正则式分析树是中文的。这对于需要此功能但是不愿意使用英文软件的用户来说非常方便。对于初学者也很有帮助。
值得说明的是,正则式的中文术语在中文里还没有形成统一的规范。以我自身的阅读经历而言,似可分为两类:何伟平译的《Perl Programming》第三版中大量使用的正则式术语译法为第一套方案,余晟先生译的《精通正则表达式》第三版中使用的正则表达式为第二套。个人倾向于第二套。
MTracer使用的正则表达式术语,与这两套术语均有相异之处。
如果有人使用上述第二套术语将RegexBuddy汉化的话,估计在中国的普及率会大幅提高。题外话。
与RegexBuddy的简单比较
还是列表说明吧。
| 属性 | MTracer | RegexBuddy |
| 界面语言 | 中文 | 英文 |
| 大小 | 471kb | 9.1 MB |
| 价格(单用户) | 个人RMB49.00 公司RMB298.00 |
US$ 39.95 |
| 免费版的限制 | 正则式长度限制 | 7天免费使用时间 |
| 帮助文件 | 原来版本有,最新的msi版已经不带帮助文件;需要的话可以下载本站上传的手册。 | 齐全。包括4本电子书,其中3本是关于正则表达式的教程、参考手册,1本是RegexBuddy的操作手册。十分翔实。语言是英文。 |
| 匹配模式 |
|
|
| 匹配选项 |
|
|
| 历史功能 | “文本片断”即是 | History |
| 导出字串为指定语言 |
|
|
| 常用正则库 | 帮助文件中有提及 | 程序中包含该功能,有定义、例代码、匹配实例。 帮助文件中也有。 |
| 扩展性 | 支持插件(疑安装目录下的stdplgin.dll是其插件,功能不详。) | 与PowerGrep相关联。 |
| 帮助论坛 | 开放,地址在此 | 仅对付费注册软件的用户开放。 |
| 界面高度可定制 | 不支持 | 支持 |
| 是否支持批量替换外部文件 | 不支持 | 支持 |
当然,没有提到的功能、细节还不少,这里仅仅是列出本人关注的属性。
MTracer 2.0注册
付出劳动,换来报酬,是当今任何行业都认可的规则。MTracer需要注册费,这一点也十分正常。其价格是48元人民币。比起US$ 39.95的RegexBuddy来,可谓性价比极高。
如果不注册,会有什么限制呢?请看图。哦,是有100个字符的限制。
这是注册后的图。
对于未注册版本,平时写一些短小的正则式,是没有问题的。如果想无限制地使用该程序,花48元支持一下国产程序,何乐而不为?
现在无论主动还是被动,版权意识都在深入人心。这也是本人一直没有把完全版的RegexBuddy和PowerGrep的下载链接贴到blog上、而是采取来Email索取的原因之一。
MTracer2.0采用注册号的方式注册。看来作者深知在国内破解成风,于是很幽默地添加了这样一则菜单选项:如何8小时破解本软件?呵呵。8小时我们可以做许多事情,没有必要浪费在track、debug、crack上。你的时间很值钱的。
这两款软件的完全版我这里都有,如果需要RegexBuddy的话,请占击链接留下信箱索取即可;但是MTracer的话就不要索取了。










