如何拆分文本并将其保存在数组中?

时间:2014-03-25 11:44:48

标签: c# arrays

我是编程新手,在阅读大文本文件并分割文本数据时遇到了一些麻烦。

文本文件中的每个条目如下所示:

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 /其他属性和方法”

我完全不知道如何做到这一点。

提前谢谢

1 个答案:

答案 0 :(得分:1)

我会一步一步地解析它。寻找将在您期望的所有字符串中出现的字符或字符串("地标")以及它们与您感兴趣的内容的关系。对于IP,它很容易:它从头开始到第一个" "发生。

var ip = myText.TakeWhile(c => c!=' ').ToString();

日期在括号内。

var date = myText.SkipWhile(c1 => c1 !='[').TakeWhile(c2 => c2!=']').ToString();

请求带有引号。因此,您执行上述搜索'"'。所以你继续,直到你得到你需要提取的所有信息。