我试图解决在.NET中使用单个RegEx解析日志文件的可行性
令人困难的是日志文件中的项目可以(但不总是)跨越多行,并且每个日志文件实际上可能包含多个“日志”。示例格式:
log: event 1 event 2 additional information event 3 log: event 1 additional information more additional information event 2 additional information
这里必须能够区分哪些事件属于哪个日志并且还具有附加信息。当然,我能够抓住事件...我无法通过附加信息获取事件,更不用说将它们分组到日志中捕获:
我很感激信息而不是提供解决方案,所以我可以学习。我想我的问题是:这有可能吗?已经使用解析器完成了我只是想尝试发现替代方法。
答案 0 :(得分:2)
这看起来手动解析比尝试在RegEx中更容易和更透明。模式非常简单。
答案 1 :(得分:2)
为什么要尝试使用单个正则表达式?使用适当的解析器。
正则表达式对于简单的字符串操作非常棒,但是一旦你得到更复杂的东西,实际的解析器就会好得多。
答案 2 :(得分:0)
使用模式分别提取每个日志条目是可能的(而且非常简单),但不能使用相同模式的捕获将匹配拆分为信息组。
你需要做的是为信息行构建一个模式(基本上,空格后跟其他东西到行尾),并重复它。