【发布时间】:2012-05-10 15:42:49
【问题描述】:
所以我正在尝试上传然后解析具有以下格式的文本文件:
3 月 29 日 19:23:51,667|DEBUG|1 |1:正在初始化 lorem ipsum...
3 月 29 日 19:23:31,682|ERROR|1 |1:启动 Foo.Bar.Launcher 时出现 Lorem.Ipsum.Exception
System.Blah.LoremException: Lorem ipsum dolor sit amet, consectetur adipisicing elit...
在 System.Lorem.Ipsum.Dolor.foo()
在 System.Lorem.Ipsum.Dolor.foo()
...
3 月 30 日 22:23:23,667|DEBUG|1 |1:正在初始化 lorem ipsum...
Apr 02 17:24:17,413|ERROR|4 |4:Lorem 无法 ipsum... System.DolorException:对象引用未设置为对象的实例。
在 Lorem.Ipsum.Dolor.IpsumDbController..ctor()
还有错误类:
public class Error
{
public int ID { get; set; }
public string Date { get; set; }
public string Description { get; set; }
public string ErrorType { get; set; }
}
哪里有两个错误:
错误 1
Mar 29 19:23:33 - 是 Date
System.Blah.LoremException - 是 ErrorType。
Lorem ipsum dolor sit amet, consectetur adipisicing elit - 是描述
错误 2
Apr 02 17:24:17 - 是 Date
System.DolorException - 是 ErrorType。
对象引用未设置为对象的实例。 - 是描述
有没有一种简单的方法可以解析字符串(通过正则表达式?或不?)?如果字符串包含 ERROR,我正在考虑拆分字符串,然后将下一行分配给 ErrorType。
我不太确定我会怎么做,所以任何帮助都将不胜感激!
更新:模式确实不一致,所以我对 String.Split 解决方案不是很有信心。
一般规则是:
全部 |错误|将有一个日期(我们的字符串日期),System.blah.LoremException (我们的错误类型),然后是一个异常消息(我们的描述)
ErrorType & Description 可能与 ERROR 字符串内联或在下一行。
【问题讨论】:
-
到目前为止你有什么进展吗?我做了类似的事情,我使用 string.split 将信息与我的文件分开。
-
还没有,不在我的开发 PC 中。我明天试试!
-
好的,请看我的回答
标签: c# regex asp.net-mvc-3 parsing