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的操作手册。十分翔实。语言是英文。
匹配模式
  1. 匹配
  2. 替换
  3. 分割
  1. 匹配
  2. 替换
  3. 分割
匹配选项
  1. 忽略大小写(开关)
  2. 单行、多行
  3. 全局局部可选
  4. 从右至左
  5. 扩展模式(详见上文)
  1. 忽略大小写 (开关)
  2. 单行、多行
  3. 默认全局
  4. 点号匹配新行
  5. ^$匹配换行符
  6. 空白字符宽松模式
  7. 扩展模式(依语言而定)
历史功能 “文本片断”即是 History
导出字串为指定语言
  1. 原状导出
  2. Visual Basic
  3. C/C++
  1. 原状导出
  2. C/C#
  3. Perl(m//或s///格式)
  4. Basic
  5. Java
  6. JavaScript
  7. Pascal
  8. PHP (//)
  9. PostgreSQL
  10. Python
  11. Ruby
  12. SQL
  13. Tcl
  14. XML
  15. 还包含在上述语言中如何调用该正则式的模块,功能强大、有用、好用。(Use)
常用正则库 帮助文件中有提及 程序中包含该功能,有定义、例代码、匹配实例。

帮助文件中也有。
扩展性 支持插件(疑安装目录下的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的话就不要索取了。

 

相关阅读

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

windows下的正则式工具介绍之二:powergrep