正則表達(dá)式工具 Match Tracer 是一款用來(lái)編寫和測(cè)試正則表達(dá)式的工具軟件!本軟件通過(guò)可視化的界面,可以協(xié)助你快速、正確地寫出復(fù)雜的正則表達(dá)式!程序員們的好幫手哦!!
MTracer2.0全名是RegexMatchTracer,官方主頁(yè)在regexlab.com。上面說(shuō)最近更新日期是2007.10.07,不過(guò),從我今天下載的程序的修改日期來(lái)看,是2008.09.13。變化是,之前作者提供的是綠色的程序,現(xiàn)在提供的是msi的安裝包。 本文以下提到MTracer時(shí),若無(wú)特殊說(shuō)明,均指MTracer2.0
作為一款正則表達(dá)式撰寫輔助程序,它擁有查找匹配、替換模式、分割模式,可以分別進(jìn)行相應(yīng)操作。前兩種用的比較多,各種語(yǔ)言或正則式工具都有相應(yīng)語(yǔ)句或函數(shù)來(lái)實(shí)現(xiàn);第三種分割模式是指使用正則表達(dá)式來(lái)描述字符串的分割符,以便將字串分割成子串?dāng)?shù)組。舉個(gè)簡(jiǎn)單的例子來(lái)說(shuō),可以使用正則式\d+;?將abcd12;sdf55656asdfasd82asd33x字串分割成子串?dāng)?shù)組:
abcd
sdf
asdfasd
asd
x
在實(shí)際操作時(shí),你總會(huì)遇到使用分割模式才能最有效率地解決的問(wèn)題。
除了一般的選項(xiàng)(忽略大小寫、單行\(zhòng)多行、全局),它提供了從右向左、擴(kuò)展模式兩種匹配選項(xiàng)。
從右向左:平時(shí)查找字串最右邊的正則式匹配,可以借助于?和$來(lái)定位。而在MTracer下,這款比較令人耳目一新的選項(xiàng)十分好玩,雖然我還沒有在實(shí)際操作時(shí)遇到過(guò)確需此選項(xiàng)的例子。
擴(kuò)展模式:包括如下選項(xiàng):
注釋 (?#xxx):在正則式中加入注釋以便提高可讀性;
模式修改符 (?ismg-ismg):小范圍內(nèi)修改匹配模式;
非捕獲組 (?:xxx):匹配而不捕獲,便于計(jì)數(shù),同時(shí)還可以節(jié)省內(nèi)存,提高效率(根據(jù)《精通正則表達(dá)式》的說(shuō)法);
預(yù)搜索(零寬度斷言):十分有用的匹配選項(xiàng),只匹配位置,而不消耗字符;有四種模式,詳見手冊(cè);
獨(dú)立表達(dá)式 (?>pattern):此選項(xiàng)在《精通正則表達(dá)式》中,被余晟先生翻譯為“固化分組”,即無(wú)論匹配成功與否,內(nèi)部都不進(jìn)行回退,都不會(huì)再次嘗試匹配;
條件表達(dá)式(?(x)y|z):與C語(yǔ)言的三目操作符類似,x條件為真則進(jìn)行y匹配,否則進(jìn)行z匹配。其中x部分有四種模式,詳見手冊(cè);
遞歸表達(dá)式 (?R):對(duì)另一部分子表達(dá)式的引用,而不是對(duì)其匹配結(jié)果的引用。當(dāng)被引用的表達(dá)式包含自身,則形成遞歸引用。
個(gè)人比較常用的選項(xiàng)是非捕獲組和預(yù)搜索。
MTracer最有用的特性
相對(duì)于另一款正則式撰寫輔助程序RegexBuddy而言,MTracer最有用的特性是中文的正則式分析樹。雖然RegexBuddy也有此功能,但是MTracer的正則式分析樹是中文的。這對(duì)于需要此功能但是不愿意使用英文軟件的用戶來(lái)說(shuō)非常方便。對(duì)于初學(xué)者也很有幫助。
值得說(shuō)明的是,正則式的中文術(shù)語(yǔ)在中文里還沒有形成統(tǒng)一的規(guī)范。以我自身的閱讀經(jīng)歷而言,似可分為兩類:何偉平譯的《Perl Programming》第三版中大量使用的正則式術(shù)語(yǔ)譯法為第一套方案,余晟先生譯的《精通正則表達(dá)式》第三版中使用的正則表達(dá)式為第二套。個(gè)人傾向于第二套。
MTracer使用的正則表達(dá)式術(shù)語(yǔ),與這兩套術(shù)語(yǔ)均有相異之處。
如果有人使用上述第二套術(shù)語(yǔ)將RegexBuddy漢化的話,估計(jì)在中國(guó)的普及率會(huì)大幅提高。題外話。
注冊(cè)名:www.innovatechautomation.com
注冊(cè)碼:
07FC26-C565EA-244BD3-014F4D
A2D69A-60E9F3-971E7B-E7AD40
25F1C8-1DFC7C-3B0905-2A6226
B1D7A8-24EE2A-3F573F-C4FEAF
DFDEC9-44810B-BC8E8F-C72E6C