C#正則表達(dá)式之回溯與非回溯淺析
作者:chenglidexiaoxue 
  C#正則表達(dá)式之回溯與非回溯是什么呢?C#正則表達(dá)式之回溯與非回溯是如何使用的呢?C#正則表達(dá)式之回溯與非回溯代表什么意思呢?那么本文就向你介紹具體的內(nèi)容。
 C#正則表達(dá)式之回溯與非回溯是什么呢?我們學(xué)習(xí)這部分需要知道的有哪些東西呢?讓我們開(kāi)始吧:
使用“(?>…)”方式進(jìn)行非回溯聲明。由于正則表達(dá)式引擎的貪婪特性,導(dǎo)致它在某些情況下,將進(jìn)行回溯以獲得匹配
請(qǐng)看下面的C#正則表達(dá)式之回溯與非回溯示例:
- string x = "Live for nothing,die for something";
 - Regex r1 = new Regex(@".*thing,");
 - if (r1.IsMatch(x))
 - {
 - Console.WriteLine("match:" + r1.Match(x).Value);//輸出:Live for nothing,
 - }
 - Regex r2 = new Regex(@"(?>.*)thing,");
 - if (r2.IsMatch(x))//不匹配
 - {
 - Console.WriteLine("match:" + r2.Match(x).Value);
 - }
 - //在r1中,“.*”由于其貪婪特性,將一直匹配到字符串的***,
 - //隨后匹配“thing”,但在匹配“,”時(shí)失敗,
 - //此時(shí)引擎將回溯,并在“thing,”處匹配成功。
 - //在r2中,由于強(qiáng)制非回溯,所以整個(gè)表達(dá)式匹配失敗。
 
C#正則表達(dá)式之回溯與非回溯使用的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#正則表達(dá)式有所幫助。
【編輯推薦】
責(zé)任編輯:仲衡 
                    來(lái)源:
                    CSDN博客
 














 
 
 
 
 
 
 