小编Chr*_*ris的帖子

使用多个分隔符类型将文本文件解析为字段

我正在尝试使用c#从聊天中解析日志文件,我遇到的问题是它并不是真正设计用于解析,因为它不使用标准分隔符.以下是文件中典型行的示例:

 2010-08-09 02:07:54 [Message] Skylar Morris -> (ATL)City Waterfront: I'll be right back 
 date time messageType userName -> roomName: message
Run Code Online (Sandbox Code Playgroud)

我想要存储的字段是:作为DateTime类型加入的日期和时间

为messageType

用户名

ROOMNAME

信息

如果它可以通过标准分隔符(如空格,制表符或逗号)分隔,那么它将非常简单,但我对如何攻击它感到茫然.


作为后续操作,使用此代码作为模板:

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());
}
Run Code Online (Sandbox Code Playgroud)

我得到了7个元素(前后一个空),预期的5个元素.我怎么能纠正这个?

foreach (string result in Regex.Split(input, pattern)
        **.Where(result => !string.IsNullOrEmpty(result))**)
{
   fileContents.Add(result.Trim());
}
Run Code Online (Sandbox Code Playgroud)

好的,设法用上面的代码解决它.

c# file-io parsing

3
推荐指数
1
解决办法
1103
查看次数

标签 统计

c# ×1

file-io ×1

parsing ×1