我是编程新手,在阅读大文本文件并分割文本数据时遇到了一些麻烦。
文本文件中的每个条目如下所示:
61.111.15.70 - - [17/Jan/2014:15:14:21 +0200] "GET /dean-martins-almeida-850322ejsapi=1&videoFinishedEvent=onsport-inc-usdot-850322.php HTTP/1.0" 302 533 "-" "http://www.checkprivacy.or.kr:6600/RS/PRIVACY_ENFAQ.jsp"
Reason: "Detects JavaScript DOM/miscellaneous properties and methods"
我希望阅读文本文件,然后按如下方式拆分数据:
client_ip: 61.111.15.70
date_time: [17 / Jan / 2014:15:14:21 +0200]
http_request:“GET /dean-martins-almeida-850322ejsapi=1&videoFinishedEvent=onsport-inc-usdot-850322.php HTTP / 1.0”
http_response_code: 302
unknown_1: 533
referer:“http://www.checkprivacy.or.kr:6600/RS/PRIVACY_ENFAQ.jsp”
原因:“检测JavaScript DOM /其他属性和方法”
我完全不知道如何做到这一点。
提前谢谢
答案 0 :(得分:1)
我会一步一步地解析它。寻找将在您期望的所有字符串中出现的字符或字符串("地标")以及它们与您感兴趣的内容的关系。对于IP,它很容易:它从头开始到第一个" "发生。
var ip = myText.TakeWhile(c => c!=' ').ToString();
日期在括号内。
var date = myText.SkipWhile(c1 => c1 !='[').TakeWhile(c2 => c2!=']').ToString();
请求带有引号。因此,您执行上述搜索'"'。所以你继续,直到你得到你需要提取的所有信息。