Та же строка, извлекая 2 ключевых слова - PullRequest
0 голосов
/ 10 мая 2011

Это продолжение моего предыдущего вопроса .. не полностью связано, но вроде как ..

Я использую 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 голосов
/ 10 мая 2011

Не стесняйтесь использовать мой 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);
}
0 голосов
/ 10 мая 2011
@"\"GET\s+/([^/]+)/\S*(?:\s+HTTP/1\.1)?\"\s+\d+\s+\d+\s+\"https?://www.enggresources.com/([^/]+)"
0 голосов
/ 10 мая 2011

На вашем месте я бы попробовал использовать регулярное выражение

...