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
            Console.WriteLine("-------------------------");
疑问:\1和\2分别代表着什么呀

解决方案 »

  1.   

    匹配组1 和 匹配组2\1 : ([a-z]{3})
    \2 : ([a-z]{5})
      

  2.   

    也就说 必须满足 Live xxx noyyyyy,die xxx someyyyyy
      

  3.   


    带标记的表达式 :{} 第 n 个带标记的文本    \n    执行替换
       Regex r = new Regex(@"^Live ([a-z]{3}) no([a-z]{5}),die \1 some\2$");
                                   第一个          第二个          第一     第二
    http://msdn.microsoft.com/zh-cn/library/2k3te2cs.aspx
     
     
      

  4.   

    带标记的表达式 :{}    Regex r = new Regex(@"^Live ([a-z]{3}) no([a-z]{5}),die \1 some\2$");
                                第一个表达式    第二个           第一    第二
      

  5.   

    \1和\2表反向引用组:\1 : ([a-z]{3})
    \2 : ([a-z]{5})
      

  6.   

    参考正则基础之——捕获组(capture group)
    正则基础之——反向引用