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