新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#正則表達式之組與非捕獲組淺析
C#正則表達式之組與非捕獲組是什么呢?具體的使用是如何的呢?讓我們來看看具體的實例操作:

10年積累的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有陜州免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
以下提供一些簡單的C#正則表達式之組與非捕獲組示例:
- string x = "Live for nothing,die for something";
- string y = "Live for nothing,die for somebody";
- Regex r = new Regex(@"^Live ([a-z]{3}) no([a-z]{5}),die \1 some\2$");
- Console.WriteLine("x match count:" + r.Matches(x).Count);//1
- Console.WriteLine("y match count:" + r.Matches(y).Count);//0
- //正則表達式引擎會記憶“()”中匹配到的內(nèi)容,作為一個“組”,
- //并且可以通過索引的方式進行引用。表達式中的“\1”,
- //用于反向引用表達式中出現(xiàn)的第一個組,即粗體標(biāo)識的第一個括號內(nèi)容,“\2”則依此類推。
- string x = "Live for nothing,die for something";
- Regex r = new Regex(@"^Live for no([a-z]{5}),die for some\1$");
- if (r.IsMatch(x))
- {
- Console.WriteLine("group1 value:" + r.Match(x).Groups[1].Value);//輸出:thing
- }
- //獲取組中的內(nèi)容。注意,此處是Groups[1],
- //因為Groups[0]是整個匹配的字符串,即整個變量x的內(nèi)容。
- string x = "Live for nothing,die for something";
- Regex r = new Regex(@"^Live for no(?﹤g1﹥[a-z]{5}),die for some\1$");
- if (r.IsMatch(x))
- {
- Console.WriteLine("group1 value:" + r.Match(x).Groups["g1"].Value);
- //輸出:thing
- }
- //可根據(jù)組名進行索引。使用以下格式為標(biāo)識一個組的名稱(?﹤groupname﹥…)。
- string x = "Live for nothing nothing";
- Regex r = new Regex(@"([a-z]+) \1");
- if (r.IsMatch(x))
- {
- x = r.Replace(x, "$1");
- Console.WriteLine("var x:" + x);//輸出:Live for nothing
- }
- //刪除原字符串中重復(fù)出現(xiàn)的“nothing”。在表達式之外,
- //使用“$1”來引用第一個組,下面則是通過組名來引用:
- string x = "Live for nothing nothing";
- Regex r = new Regex(@"(?﹤g1﹥[a-z]+) \1");
- if (r.IsMatch(x))
- {
- x = r.Replace(x, "${g1}");
- Console.WriteLine("var x:" + x);//輸出:Live for nothing
- }
- string x = "Live for nothing";
- Regex r = new Regex(@"^Live for no(?:[a-z]{5})$");
- if (r.IsMatch(x))
- {
- Console.WriteLine("group1 value:" + r.Match(x).Groups[1].Value);//輸出:(空)
- }
- //在組前加上“?:”表示這是個“非捕獲組”,即引擎將不保存該組的內(nèi)容。
C#正則表達式之組與非捕獲組使用的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#正則表達式有所幫助。
【編輯推薦】
- C#正則表達式之基本的語法字符淺析
- C#正則表達式之定位字符淺析
- C#正則表達式之重復(fù)描述字符淺析
- C#正則表達式之擇一匹配淺析
- C#正則表達式之特殊字符的匹配淺析
網(wǎng)頁標(biāo)題:C#正則表達式之組與非捕獲組淺析
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/cdoehgs.html


咨詢
建站咨詢
