引用:Ultrapico Expresso是一個(gè)非常強(qiáng)大的正則表達(dá)式構(gòu)建、測(cè)試以及代碼生成工具。它能夠?qū)δ銟?gòu)建的正則表達(dá)式進(jìn)行解析、驗(yàn)證,并輸出解析結(jié)果,提供性能測(cè)試工具,支持C#、VB等代碼生成,最重要的是,他提供了一個(gè)非常方便強(qiáng)大的正則表達(dá)式語法構(gòu)建面板,即使你對(duì)正則表達(dá)式生疏了,也能在它的幫助下構(gòu)建出你想要的正則模式來。而且,它還免費(fèi)獲取授權(quán)碼,無需費(fèi)心找破解了。軟件里自帶的幫助文檔以及正則表達(dá)式庫可以幫助你快速從正則菜鳥升級(jí)為正則高手。
最新版本的Ultrapico Expresso提供下面這些強(qiáng)大的功能:
首先看Expresso的操作界面:
可以看到打開軟件時(shí)首先是Test Mode, 用戶可以在這里進(jìn)行正則表達(dá)式的驗(yàn)證,并且提供了Regex Analyzer的功能,用戶可以很方便的查看自己書寫的正則式的一些細(xì)節(jié)。除了Test Mode, 還有更為強(qiáng)大的Design Mode與Expression Library(個(gè)人覺得從那個(gè)Expression Library里能學(xué)到很多知識(shí)),具體的使用方法大家自己體會(huì)。 你會(huì)發(fā)現(xiàn),通過這個(gè)工具,學(xué)習(xí)正則表達(dá)式的曲線會(huì)平滑一些的。
更多的學(xué)習(xí)心得待到認(rèn)真學(xué)好RE與這個(gè)工具后再分享。--->To be Continued.
不同語言、框架中的正則表達(dá)式的語法規(guī)則有所不同,這里只要討論的是.net平臺(tái)下正則表達(dá)式的相關(guān)。.net中使用正則表達(dá)式處理文本的中心構(gòu)件是正則表達(dá)式引擎,該引擎在 .NET Framework 中由 System.Text.RegularExpressions.Regex 對(duì)象表示。 使用正則表達(dá)式處理文本至少要求向該正則表達(dá)式引擎提供以下兩方面的信息:
Regex 類的方法使您可以執(zhí)行以下操作:
先用例子來具體說明.net中Regex類的使用方法:
例子一:替換子字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = "(Mr\\.? |Mrs\\.? |Miss |Ms\\.? )" ; string [] names = { "Mr. Henry Hunt" , "Ms. Sara Samuels" , "Abraham Adams" , "Ms. Nicole Norris" }; foreach ( string name in names) Console.WriteLine(Regex.Replace(name, pattern, String.Empty)); } } |
正則表達(dá)式模式 (Mr\.? |Mrs\.? |Miss |Ms\.? ) 可匹配任何“Mr”、“Mr.” 、“Mrs”、“Mrs.” 、“Miss”、“Ms”或“Ms.” . 對(duì) Regex.Replace 方法的調(diào)用會(huì)將匹配的字符串替換為 String.Empty;換句話說,它從原始字符串中將其移除.
例子二:標(biāo)示重復(fù)的單詞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System; using System.Text.RegularExpressions; public class Class1 { public static void Main() { string pattern = @"\b(\w+?)\s\1\b" ; string input = "This this is a nice day. What about this? This tastes good. I saw a a dog." ; foreach (Match match in Regex.Matches(input, pattern, RegexOptions.IgnoreCase)) Console.WriteLine( "{0} (duplicates '{1})' at position {2}" , match.Value, match.Groups[1].Value, match.Index); } } // The example displays the following output: // This this (duplicates 'This)' at position 0 // a a (duplicates 'a)' at position 66 |
正則表達(dá)式模式 \b(\w+?)\s\1\b 可以解釋如下:
\b: 在單詞邊界處開始
(\w+): 匹配一個(gè)或多個(gè)單詞字符,它們一起構(gòu)成可稱為\1的組
\s: 與空白字符匹配
\1: 與等于名為\1的組的子字符串匹配
\b: 與字邊界匹配
通過將正則表達(dá)式選項(xiàng)設(shè)置為 RegexOptions.IgnoreCase,調(diào)用 Regex.Matches 方法. 因此,匹配操作不區(qū)分大小寫,此示例將子字符串“This this”標(biāo)識(shí)為重復(fù).
聯(lián)系客服