正则表达式工具 Match Tracer 是一款用来编写和测试正则表达式的工具软件!本软件通过可视化的界面,可以协助你快速、正确地写出复杂的正则表达式!程序员们的好帮手哦!!
MTracer2.0全名是RegexMatchTracer,官方主页在regexlab.com。上面说最近更新日期是2007.10.07,不过,从我今天下载的程序的修改日期来看,是2008.09.13。变化是,之前作者提供的是绿色的程序,现在提供的是msi的安装包。 本文以下提到MTracer时,若无特殊说明,均指MTracer2.0
作为一款正则表达式撰写辅助程序,它拥有查找匹配、替换模式、分割模式,可以分别进行相应操作。前两种用的比较多,各种语言或正则式工具都有相应语句或函数来实现;第三种分割模式是指使用正则表达式来描述字符串的分割符,以便将字串分割成子串数组。举个简单的例子来说,可以使用正则式\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汉化的话,估计在中国的普及率会大幅提高。题外话。
注册名:www.cr173.com
注册码:
07FC26-C565EA-244BD3-014F4D
A2D69A-60E9F3-971E7B-E7AD40
25F1C8-1DFC7C-3B0905-2A6226
B1D7A8-24EE2A-3F573F-C4FEAF
DFDEC9-44810B-BC8E8F-C72E6C