日期:2014-05-19  浏览次数:20707 次

正则表达式截取局部文本
我想用正则表达式取文本的内容,以日期为分割符,截取后半部文字,具体格式如下:(前半部文本,不用保存)yyyy年mm月dd日   hh:mm:ss(后半部内容,也就是最终所要保留下的内容)   .考虑到mm和dd(即月号和日期号)有时可能为一位数,而HH:MM:SS有时可能无此显示,请教大家,用于截获下述文本的C#正则表达式应该如何来写?

谢谢好心人   :)

参考格式:
"
....至少77人死伤   2007年04月23日   18:43:10  


        新华网巴格达4月23日电(记者闫珺岩 张伟)伊拉克警方说,伊拉.... "

------解决方案--------------------
try

string yourStr = ..................;
string resultStr = " ";
Match m = Regex.Match(yourStr, @ "\d{4}年\d{1,2}月\d{1,2}日\s+(\d{2}:\d{2}:\d{2})?\s*?(? <content> \S[\s\S]*?)$ ", RegexOptions.IgnoreCase);
if(m.Success)
{
resultStr = m.Groups[ "content "].Value;
}

仅参考一个实例写出的正则未必能通用,如果有不匹配的,给出实例,另外这是匹配单一字符串的,如果是同时匹配多条记录,再说明一下

------解决方案--------------------
时间部分没有严谨匹配,不过按你的描述,这样写应该足够了