【发布时间】:2011-02-17 02:52:48
【问题描述】:
我正在尝试使用 c# 从聊天中解析日志文件,我遇到的问题是它并不是真正为解析而设计的,因为它不使用标准分隔符。这是文件中典型行的示例:
2010-08-09 02:07:54 [Message] Skylar Morris -> (ATL)City Waterfront: I'll be right back
date time messageType userName -> roomName: message
我要存储的字段是: 日期和时间作为 DateTime 类型加入
消息类型
用户名
房间名称
消息
如果它可以通过空格、制表符或逗号等标准分隔符分隔,那将相当简单,但我不知道如何攻击它。
作为后续,使用此代码作为模板:
List<String> fileContents = new List<String>();
string input = @"2010-08-09 02:07:54 [Message] Skylar Morris -> (ATL)City Waterfront: I'll be right back";
string pattern = @"(.*)\[(.*)\](.*)->(.+?):(.*)";
foreach (string result in Regex.Split(input, pattern))
{
fileContents.Add(result.Trim());
}
我得到了预期的 5 个元素(前后各一个为空)。我该如何纠正这个问题?
foreach (string result in Regex.Split(input, pattern)
**.Where(result => !string.IsNullOrEmpty(result))**)
{
fileContents.Add(result.Trim());
}
好的,用上面的代码解决了。
【问题讨论】: