读书人

求正则切割字符串解决办法

发布时间: 2013-07-09 09:50:47 作者: rapoo

求正则切割字符串
象下面这样的字符串:

买家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)(已付款,未发货) :

现在想以类似上面这三个分割字符,规律是第一个括号中是时间,长度固定;第二个括号中是订单状态,长度不固定;最后面有一个全角冒号。

最终是想得到下面的分割结果:
韵达快递 卡包一个。
韵达快递卡包两个。
韵达快递。


[解决办法]


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);
}

读书人网 >C#

热点推荐