例:
"
start
a:123123
b:123456789
c:123456
/over
start
d:123123
e:123456789
f:123456
/over"
就像上边的例子一样,我要匹配出start至/over的内容
但是
如果用"^start[]{*}/over"这样匹配的话,
我就得到了
"
start
a:123123
b:123456789
c:123456
/over
start
d:123123
e:123456789
f:123456
/over"
,哪位大侠帮帮忙啊

解决方案 »

  1.   

     XOL 2.6.0063017a              20100703Serial           C JX000000              
     J20T20 00010001                                                                
     L020         E0149741007021701HSP  CFW                 09                      
     L810002000000300000000002                                                      
     M2001TBJU3855514                                                               
     S2001113369                                                                    
     T119990492610005020529000900001800100014270020006579005200000200690031200      
    /WBE3051010952                                                                  
     XOL 2.6.0063017a              20100703Serial           C JX000000              
     J20T20 00010001                                                                
     L021         E0149751007021703HSP  CFW                 09                      
                00010027000002700000000000217107580000    
     L810002000000300000000002                                                      
     M2001TBJU3857543                                                               
     S2001113370                                                                    
     T119990492610005020529000900001800100014270020006579005200000200690031200      
    /WBE2009572559     就是这样的例子啊                                                      
      

  2.   

    试试这个,不过我假定你的第一行XOL 2.6.0063017a 20100703Serial C JX000000不会改变        static void Main(string[] args)
            {
                string src = @"XOL 2.6.0063017a 20100703Serial C JX000000   
     J20T20 00010001   
     L020 E0149741007021701HSP CFW 09   
     L810002000000300000000002   
     M2001TBJU3855514   
     S2001113369   
     T119990492610005020529000900001800100014270020006579005200000200690031200   
    /WBE3051010952   
     XOL 2.6.0063017a 20100703Serial C JX000000   
     J20T20 00010001   
     L021 E0149751007021703HSP CFW 09   
      00010027000002700000000000217107580000   
     L810002000000300000000002   
     M2001TBJU3857543   
     S2001113370   
     T119990492610005020529000900001800100014270020006579005200000200690031200   
    /WBE2009572559";
                foreach (Match m in Regex.Matches(src, @"XOL 2.6.0063017a 20100703Serial C JX000000[\W\w]([\W\w]*?)/WBE\d{10}", RegexOptions.Multiline))
                {
                    Console.WriteLine(m.Groups[1].Value.Trim());
                    Console.WriteLine();
                }
            }
      

  3.   

                string str = @"XOL 2.6.0063017a 20100703Serial C JX000000   
     J20T20 00010001   
     L020 E0149741007021701HSP CFW 09   
     L810002000000300000000002   
     M2001TBJU3855514   
     S2001113369   
     T119990492610005020529000900001800100014270020006579005200000200690031200   
    /WBE3051010952   
     XOL 2.6.0063017a 20100703Serial C JX000000   
     J20T20 00010001   
     L021 E0149751007021703HSP CFW 09   
      00010027000002700000000000217107580000   
     L810002000000300000000002   
     M2001TBJU3857543   
     S2001113370   
     T119990492610005020529000900001800100014270020006579005200000200690031200   
    /WBE2009572559";
                Regex reg = new Regex(@"(?s)XOL\b((?!XOL\b).)*");
                foreach (Match m in reg.Matches(str))
                {
                    Response.Write(m.Value + "<br/><br/><br/>");
                }
      

  4.   


        public void Test()
        {
            string yourStr = @"start
    a:123123
    b:123456789
    c:123456
    /over
    start
    d:123123
    e:123456789
    f:123456
    /over";
            foreach (string item in GetItems(yourStr,"start","/over"))
            {
                Console.WriteLine(item);
                Console.WriteLine("-------------");
            }
        }    /// <summary>
        /// 指定文本,指定头尾,取内容
        /// </summary>
        /// <param name="text">匹配文本</param>
        /// <param name="start">段落头</param>
        /// <param name="end">段落尾</param>
        /// <returns>匹配到的内容</returns>
        public static string[] GetItems(string text, string start, string end)
        {
            List<string> result = new List<string>();
            foreach (Match m in Regex.Matches(text,Regex.Escape(start)+"(.+?)"+Regex.Escape(end), RegexOptions.Compiled| RegexOptions.Singleline))
            {
                result.Add(m.Value);//如果所有内容就是这样
                //result.Add(m.Groups[1].Value);//如果只要中间内容就这行
            }
            return result.ToArray();
        }