同一行,提取2个关键字

时间:2011-05-10 12:16:38

标签: c# visual-studio-2008

这是我之前提出的问题的后续行动......并不是完全相关的,但有点是..

我正在使用Visual C#来实现我的目的..

请考虑我的日志文件中的以下条目 -

117.200.80.190 "2009-08-09 00:44:38  " "GET /admintools/openx-2.8.1/afr.php" 200 528 "http://www.enggresources.com/comedk/comedk_mock_counselling.php" "Mozilla/4.0"

59.92.139.141 - - "2009-08-09 00:56:50  " "GET /resources/ HTTP/1.1" 302 20 "http://www.enggresources.com/placements/index.php" "Mozilla/5.0 "

- 我想从第一个条目中提取“admintools”和“comedk”。
- 来自第二个条目的“资源”和“展示位置”。
- 来自第三个条目的“home”和“NULL”。
- 这些是样本条目,我在日志文件中有类似的数千..

一旦我从每一行中提取每一对,我希望能够计算整个文件中对的出现次数。

3 个答案:

答案 0 :(得分:0)

随意使用我的StringReader

string line = textReader.ReadLine();
var reader = new StringReader(line);
while (line != null)
{
    var ip = reader.ReadWord();
    reader.SkipWhitespaces();
    var date = reader.ReadQuotedString();
    reader.SkipWhitespaces();
    var uri = reader.ReadQuotedString();
    reader.ReadUntil('"');
    var uri2 = reader.ReadQuotedString();

    line = textReader.ReadLine();
    reader.Assign(line);
}

答案 1 :(得分:0)

@"\"GET\s+/([^/]+)/\S*(?:\s+HTTP/1\.1)?\"\s+\d+\s+\d+\s+\"https?://www.enggresources.com/([^/]+)"

答案 2 :(得分:-1)

如果我是你,我会尝试使用正则表达式