<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>我爱正则表达式 &#187; mtracer</title>
	<atom:link href="http://iregex.org/blog/tag/mtracer/feed" rel="self" type="application/rss+xml" />
	<link>http://iregex.org</link>
	<description>原创、翻译、转载关于正则表达式的文章</description>
	<lastBuildDate>Sun, 27 Jun 2010 04:20:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/><atom:link rel="hub" href="http://www.feedsky.com/api/RPC2"/><atom:link rel="hub" href="http://blogsearch.google.com/ping/RPC2"/><atom:link rel="hub" href="http://blog.yodao.com/ping/RPC2"/><atom:link rel="hub" href="http://www.feedsky.com/api/RPC2"/><atom:link rel="hub" href="http://www.xianguo.com/xmlrpc/ping.php"/><atom:link rel="hub" href="http://www.zhuaxia.com/rpc/server.php"/><atom:link rel="hub" href="http://rpc.technorati.com/rpc/ping"/><atom:link rel="hub" href="http://rpc.pingomatic.com/"/>	
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://iregex.org/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>windows下的正则式工具介绍之三：MTracer2.0介绍以及与RegexBuddy比较</title>
		<link>http://iregex.org/blog/mtracer-vs-regexbuddy.html</link>
		<comments>http://iregex.org/blog/mtracer-vs-regexbuddy.html#comments</comments>
		<pubDate>Tue, 16 Sep 2008 03:29:13 +0000</pubDate>
		<dc:creator>rex</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[chinese]]></category>
		<category><![CDATA[mtracer]]></category>
		<category><![CDATA[powergrep]]></category>
		<category><![CDATA[regexbuddy]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://iregex.org/?p=32</guid>
		<description><![CDATA[RegexBuddy和PowerGrep是我在windows下常用的两款正则式工具。前者是帮助编写正则式的辅助工具，后者是进行批量搜索替换的实用工具。这两款软件都是外国人写的。今天介绍国人史寿伟先生写的一... ]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: rgb(255,255,255) 1px solid; border-left: rgb(255,255,255) 1px solid; margin: 0px 10px 10px; padding-left: 0px; float: right; clear: both; border-top: rgb(255,255,255) 1px solid; border-right: rgb(255,255,255) 1px solid" src="http://www.regexlab.com/images/logo_s.gif" />RegexBuddy和PowerGrep是我在windows下常用的两款正则式工具。前者是帮助编写正则式的辅助工具，后者是进行批量搜索替换的实用工具。这两款软件都是外国人写的。今天介绍国人<a target="_blank" href="http://www.softreg.com.cn/Search.aspx?t=authorid&amp;v=/efff07ff-b552-4034-8860-1964f285c4fc/">史寿伟先生</a>写的一款正则式工具，MTracer 2.0。 </p>
<p><span id="more-32"></span></p>
<p>&#160;</p>
<h2 style="background-color:#99CC00; font-size:14px; padding-bottom:3px; padding-left:10px; padding-top:3px;  line-height:1.5em; margin:1.5em 0 1em;">MTracer 2.0软件版本</h2>
<p>MTracer2.0全名是RegexMatchTracer，官方主页在regexlab.com。上面说最近更新日期是2007.10.07，不过，从我今天下载的程序的修改日期来看，是2008.09.13。变化是，之前作者提供的是绿色的程序，现在提供的是msi的安装包。 本文以下提到MTracer时，若无特殊说明，均指MTracer2.0。</p>
<p>&#160;</p>
<h2 style="background-color:#99CC00; font-size:14px; padding-bottom:3px; padding-left:10px; padding-top:3px;  line-height:1.5em; margin:1.5em 0 1em;">MTracer软件特性</h2>
<p><img style="border-bottom: rgb(255,255,255) 1px solid; border-left: rgb(255,255,255) 1px solid; margin: 0px 10px 10px; padding-left: 0px; float: right; clear: both; border-top: rgb(255,255,255) 1px solid; border-right: rgb(255,255,255) 1px solid" src="http://i3.6.cn/cvbnm/61/db/85/73daa684cce5f9fe1d6f327aa5d5502c.jpg" />作为一款正则表达式撰写辅助程序，它拥有查找匹配、替换模式、分割模式，可以分别进行相应操作。前两种用的比较多，各种语言或正则式工具都有相应语句或函数来实现；第三种<strong>分割模式</strong>是指<strong>使用正则表达式来描述字符串的分割符，以便将字串分割成子串数组。</strong>举个简单的例子来说，可以使用正则式<tt class="regex">\d+;?</tt>将<tt class="string">abcd12;sdf55656asdfasd82asd33x</tt>字串分割成子串数组：</p>
<ul>
<li>abcd </li>
<li>sdf </li>
<li>asdfasd </li>
<li>asd </li>
<li>x </li>
</ul>
<p>在实际操作时，你总会遇到使用分割模式才能最有效率地解决的问题。</p>
<p><img style="border-bottom: rgb(255,255,255) 1px solid; border-left: rgb(255,255,255) 1px solid; margin: 0px 10px 10px; padding-left: 0px; float: right; clear: both; border-top: rgb(255,255,255) 1px solid; border-right: rgb(255,255,255) 1px solid" src="http://i3.6.cn/cvbnm/df/9f/96/cfd4162eebd15ed35237a49bf94b82ae.jpg" /> 除了一般的选项（忽略大小写、单行\多行、全局），它提供了从右向左、扩展模式两种匹配选项。</p>
<p><strong>从右向左</strong>：平时查找字串最右边的正则式匹配，可以借助于<tt class="regex">?</tt>和<tt class="regex">$</tt>来定位。而在MTracer下，这款比较令人耳目一新的选项十分好玩，虽然我还没有在实际操作时遇到过确需此选项的例子。</p>
<p><strong>扩展模式</strong>：包括如下选项：</p>
<ul>
<li>注释 <tt class="regex">(?#xxx)</tt>：在正则式中加入注释以便提高可读性； </li>
<li>模式修改符 <tt class="regex">(?ismg-ismg)</tt>：小范围内修改匹配模式； </li>
<li>非捕获组 <tt class="regex">(?:xxx)</tt>：匹配而不捕获，便于计数，同时还可以节省内存，提高效率（根据《精通正则表达式》的说法）； </li>
<li>预搜索（零宽度断言）：十分有用的匹配选项，<strong>只匹配位置，而不消耗字符</strong>；有四种模式，详见<a target="_blank" href="http://www.mediafire.com/?ugf3z8tklbl">手册</a>； </li>
<li>独立表达式 <tt class="regex">(?&gt;pattern)</tt>：此选项在《精通正则表达式》中，被余晟先生翻译为&#8220;固化分组&#8221;，即无论匹配成功与否，内部都不进行回退，都不会再次尝试匹配； </li>
<li>条件表达式<tt class="regex">(?(x)y|z)</tt>：与C语言的三目操作符类似，x条件为真则进行y匹配，否则进行z匹配。其中x部分有四种模式，详见<a target="_blank" href="http://www.mediafire.com/?ugf3z8tklbl">手册</a>； </li>
<li>递归表达式 <tt class="regex">(?R)</tt>：对另一部分子表达式的引用，而不是对其匹配结果的引用。当被引用的表达式包含自身，则形成递归引用。 </li>
</ul>
<p>个人比较常用的选项是非捕获组和预搜索。</p>
<p>&#160;</p>
<h2 style="background-color:#99CC00; font-size:14px; padding-bottom:3px; padding-left:10px; padding-top:3px;  line-height:1.5em; margin:1.5em 0 1em;">MTracer最有用的特性</h2>
<p><img style="border-bottom: rgb(255,255,255) 1px solid; border-left: rgb(255,255,255) 1px solid; margin: 0px 10px 10px; padding-left: 0px; float: right; clear: both; border-top: rgb(255,255,255) 1px solid; border-right: rgb(255,255,255) 1px solid" src="http://i3.6.cn/cvbnm/1c/a8/f0/2fed4bd2ff41a771aecc1558210c5442.jpg" /> 相对于另一款正则式撰写辅助程序RegexBuddy而言，MTracer最有用的特性是中文的正则式分析树。虽然RegexBuddy也有此功能，但是MTracer的正则式分析树是中文的。这对于需要此功能但是不愿意使用英文软件的用户来说非常方便。对于初学者也很有帮助。</p>
<p>值得说明的是，正则式的中文术语在中文里还没有形成统一的规范。以我自身的阅读经历而言，似可分为两类：何伟平译的《Perl Programming》第三版中大量使用的正则式术语译法为第一套方案，余晟先生译的《精通正则表达式》第三版中使用的正则表达式为第二套。个人倾向于第二套。</p>
<p>MTracer使用的正则表达式术语，与这两套术语均有相异之处。</p>
<p>如果有人使用上述第二套术语将RegexBuddy汉化的话，估计在中国的普及率会大幅提高。题外话。</p>
<p>&#160;</p>
<h2 style="background-color:#99CC00; font-size:14px; padding-bottom:3px; padding-left:10px; padding-top:3px;  line-height:1.5em; margin:1.5em 0 1em;">&#160;</h2>
<h2 style="background-color:#99CC00; font-size:14px; padding-bottom:3px; padding-left:10px; padding-top:3px;  line-height:1.5em; margin:1.5em 0 1em;">与RegexBuddy的简单比较</h2>
<p>还是列表说明吧。</p>
<table border="1" cellspacing="1" cellpadding="2" width="401">
<tbody>
<tr>
<td width="105" align="center"><strong>属性</strong></td>
<td width="132" align="center"><strong>MTracer</strong></td>
<td width="158" align="center"><strong>RegexBuddy</strong></td>
</tr>
<tr>
<td width="103">界面语言</td>
<td width="132">中文</td>
<td width="159">英文</td>
</tr>
<tr>
<td width="102">大小</td>
<td width="132">471kb</td>
<td width="160">9.1 MB</td>
</tr>
<tr>
<td width="103">价格(单用户)</td>
<td width="131">个人RMB49.00<br />
        <br />公司RMB298.00</td>
<td width="160">US$ 39.95</td>
</tr>
<tr>
<td width="103">免费版的限制</td>
<td width="131">正则式长度限制</td>
<td width="160">7天免费使用时间</td>
</tr>
<tr>
<td width="103">帮助文件</td>
<td width="131">原来版本有，最新的msi版已经不带帮助文件；需要的话可以下载本站上传的<a target="_blank" href="http://www.mediafire.com/?ugf3z8tklbl">手册</a>。</td>
<td width="160">齐全。包括4本电子书，其中3本是关于正则表达式的教程、参考手册，1本是RegexBuddy的操作手册。十分翔实。语言是英文。</td>
</tr>
<tr>
<td width="103">匹配模式</td>
<td width="131">
<ol>
<li>匹配 </li>
<li>替换 </li>
<li>分割 </li>
</ol>
</td>
<td width="160">
<ol>
<li>匹配 </li>
<li>替换 </li>
<li>分割 </li>
</ol>
</td>
</tr>
<tr>
<td width="103">匹配选项</td>
<td width="131">
<ol>
<li>忽略大小写（开关） </li>
<li>单行、多行 </li>
<li>全局局部可选 </li>
<li>从右至左 </li>
<li>扩展模式（详见上文） </li>
</ol>
</td>
<td width="160">
<ol>
<li>忽略大小写 （开关） </li>
<li>单行、多行 </li>
<li>默认全局 </li>
<li>点号匹配新行 </li>
<li>^$匹配换行符 </li>
<li>空白字符宽松模式 </li>
<li>扩展模式（依语言而定） </li>
</ol>
</td>
</tr>
<tr>
<td width="103">历史功能</td>
<td width="131">&#8220;文本片断&#8221;即是</td>
<td width="160">History</td>
</tr>
<tr>
<td width="103">导出字串为指定语言</td>
<td width="131">
<ol>
<li>原状导出 </li>
<li>Visual Basic </li>
<li>C/C++ </li>
</ol>
</td>
<td width="160">
<ol>
<li>原状导出 </li>
<li>C/C# </li>
<li>Perl(m//或s///格式) </li>
<li>Basic </li>
<li>Java </li>
<li>JavaScript </li>
<li>Pascal </li>
<li>PHP (//) </li>
<li>PostgreSQL </li>
<li>Python </li>
<li>Ruby </li>
<li>SQL </li>
<li>Tcl </li>
<li>XML </li>
<li><strong>还包含在上述语言中如何调用该正则式的模块，功能强大、有用、好用。（Use）</strong> </li>
</ol>
</td>
</tr>
<tr>
<td width="103">常用正则库</td>
<td width="131">帮助文件中有提及</td>
<td width="160">程序中包含该功能，有定义、例代码、匹配实例。<br />
        <br />帮助文件中也有。</td>
</tr>
<tr>
<td width="103">扩展性</td>
<td width="131">支持插件（疑安装目录下的stdplgin.dll是其插件，功能不详。）</td>
<td width="160">与PowerGrep相关联。</td>
</tr>
<tr>
<td width="103">帮助论坛</td>
<td width="131">开放，地址<a target="_blank" href="http://www.regexlab.com/zh/discuss/forum.aspx?b=1">在此</a></td>
<td width="160">仅对付费注册软件的用户开放。</td>
</tr>
<tr>
<td width="103">界面高度可定制</td>
<td width="132">不支持</td>
<td width="161">支持</td>
</tr>
<tr>
<td width="103">是否支持批量替换外部文件</td>
<td width="132">不支持</td>
<td width="161">支持</td>
</tr>
</tbody>
</table>
<p>当然，没有提到的功能、细节还不少，这里仅仅是列出本人关注的属性。</p>
<p>&#160;</p>
<h2 style="background-color:#99CC00; font-size:14px; padding-bottom:3px; padding-left:10px; padding-top:3px;  line-height:1.5em; margin:1.5em 0 1em;">MTracer 2.0注册</h2>
<p>付出劳动，换来报酬，是当今任何行业都认可的规则。MTracer需要注册费，这一点也十分正常。其价格是48元人民币。比起US$ 39.95的RegexBuddy来，可谓性价比极高。</p>
<p><img style="border-bottom: rgb(255,255,255) 1px solid; border-left: rgb(255,255,255) 1px solid; margin: 0px 10px 10px; padding-left: 0px; float: right; clear: both; border-top: rgb(255,255,255) 1px solid; border-right: rgb(255,255,255) 1px solid" src="http://i3.6.cn/cvbnm/a7/08/a1/f3e2daa8f96c1c47d4b08ef7a6c14224.jpg" /> </p>
<p>如果不注册，会有什么限制呢？请看图。哦，是有100个字符的限制。</p>
<p><img style="border-bottom: rgb(255,255,255) 1px solid; border-left: rgb(255,255,255) 1px solid; margin: 0px 10px 10px; padding-left: 0px; float: right; clear: both; border-top: rgb(255,255,255) 1px solid; border-right: rgb(255,255,255) 1px solid" src="http://i3.6.cn/cvbnm/4c/d6/e2/5dcb18e7a4610987954ee363624a3584.jpg" /> 这是注册后的图。</p>
<p>对于未注册版本，平时写一些短小的正则式，是没有问题的。如果想无限制地使用该程序，花48元支持一下国产程序，何乐而不为？</p>
<p>现在无论主动还是被动，版权意识都在深入人心。这也是本人一直没有把完全版的RegexBuddy和PowerGrep的下载链接贴到blog上、而是采取来Email索取的原因之一。</p>
<p><img style="border-bottom: rgb(255,255,255) 1px solid; border-left: rgb(255,255,255) 1px solid; margin: 0px 10px 10px; padding-left: 0px; float: right; clear: both; border-top: rgb(255,255,255) 1px solid; border-right: rgb(255,255,255) 1px solid" src="http://i3.6.cn/cvbnm/06/e9/0d/fe543fab025def9627a7f1a4df30f354.jpg" /> MTracer2.0采用注册号的方式注册。看来作者深知在国内破解成风，于是很幽默地添加了这样一则菜单选项：如何8小时破解本软件？呵呵。8小时我们可以做许多事情，没有必要浪费在track、debug、crack上。你的时间很值钱的。</p>
<p>这两款软件的完全版我这里都有，如果需要RegexBuddy的话，请占击链接留下信箱索取即可；但是MTracer的话就<strong>不要</strong>索取了。</p>
<p>&#160;</p>
<h2 style="background-color:#99CC00; font-size:14px; padding-bottom:3px; padding-left:10px; padding-top:3px;  line-height:1.5em; margin:1.5em 0 1em;">相关阅读</h2>
<h3 style="color: #127ADB; font-size:14px; padding-bottom:3px; padding-top:3px; margin:1.5em 0 1em;"><a href="http://iregex.org/blog/regexbuddy.html">windows下的正则式工具介绍之一：RegexBuddy</a></h4>
<h3 style="color: #127ADB; font-size:14px; padding-bottom:3px; padding-top:3px; margin:1.5em 0 1em;"><a href="http://iregex.org/blog/powergrep.html">windows下的正则式工具介绍之二：powergrep</a></h4>
]]></content:encoded>
			<wfw:commentRss>http://iregex.org/blog/mtracer-vs-regexbuddy.html/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>
