象下面这样的字符串:买家Ldkaka(2013-07-03 11:23:41)(未付款) :韵达快递 卡包一个。分销商ldby2000(2013-07-03 11:24:33)(未付款) :韵达快递卡包两个。分销商ldby2000(2013-07-03 11:25:57)(已付款,未发货) :韵达快递。其中有买家留言,有分销商留言,每个留言都有时间和当前订单状态,分别是:
(2013-07-03 11:23:41)(未付款) :
(2013-07-03 11:24:33)(未付款) :
(2013-07-03 11:25:57)(已付款,未发货) :现在想以类似上面这三个分割字符,规律是第一个括号中是时间,长度固定;第二个括号中是订单状态,长度不固定;最后面有一个全角冒号。最终是想得到下面的分割结果:
韵达快递 卡包一个。
韵达快递卡包两个。
韵达快递。

解决方案 »

  1.   

    string html = @"买家Ldkaka(2013-07-03 11:23:41)(未付款) :韵达快递 卡包一个。分销商ldby2000(2013-07-03 11:24:33)(未付款) :韵达快递卡包两个。分销商ldby2000(2013-07-03 11:25:57)(已付款,未发货) :韵达快递。其中有买家留言,有分销商留言,每个留言都有时间和当前订单状态,分别是:
    (2013-07-03 11:23:41)(未付款) :
    (2013-07-03 11:24:33)(未付款) :
    (2013-07-03 11:25:57)(已付款,未发货) :";
                    var result = Regex.Matches(html, @"(?i)(?<=\(\d{4}-\d{2}-\d{2}\s+?\d{2}:\d{2}:\d{2}\)\s*?\([^)]*?\)\s*?[::])[^。]+?。").OfType<Match>().Select(a=>a.Value).ToList();
                    /*
                     *  [0] "韵达快递 卡包一个。" string
    [1] "韵达快递卡包两个。" string
    [2] "韵达快递。" string                 */
      

  2.   

    (?<=\(\d{4}-\d{1,2}-\d{1,2}\s*\d{1,2}:\d{1,2}:\d{1,2}\)\s*\([^()]*?\)\s*[::]).*?(?=。)
      

  3.   


     string source = @"买家Ldkaka(2013-07-03 11:23:41)(未付款) :韵达快递 卡包一个。分销商ldby2000(2013-07-03 11:24:33)(未付款) :韵达快递卡包两个。分销商ldby2000(2013-07-03 11:25:57)(已付款,未发货) :韵达快递。
     
    其中有买家留言,有分销商留言,每个留言都有时间和当前订单状态,分别是:
    (2013-07-03 11:23:41)(未付款) :
    (2013-07-03 11:24:33)(未付款) :
    (2013-07-03 11:25:57)(已付款,未发货) :";
                foreach (Match m in Regex.Matches(source, @"(?<=\(\d{4}-\d{1,2}-\d{1,2}\s*\d{1,2}:\d{1,2}:\d{1,2}\)\s*\([^()]*?\)\s*[::]).*?(?=。)"))
                {
                    Console.WriteLine(m.Value);
                }
      

  4.   

    感谢Return_false如此快速而正确的回复,神人啊!
    也谢谢其它两位的参与。