Sscanf для чтения пользовательских простой формат журнала? - PullRequest
0 голосов
/ 02 сентября 2010

Я написал простой файл журнала для моего веб-сайта в следующем формате:

TIME: "..." IP: "..." HOST: "..." UA: "..." 

И хотел проанализировать его с помощью sscanf в рамках упражнения.Мой код был примерно таким, который запускался в каждой строке журнала:

list($time, $ip, $host, $ua) = sscanf("TIME: %s IP: %s HOST: %s UA: %s", $line);

Конечно, это PHP, но он не имеет значения, теперь я думал, это будет работать, но этопросто ничего не разбирает.Теперь я знаю, что все портится, потому что пользовательский агент или время содержат пробелы, поэтому он не работает.

Я мало что знаю о формате sscanf, но хочу использовать его для простоты, есть ли способчитать кавычки как единый объект (вместо использования просто% s), чтобы он мог работать правильно?

Я получил много журналов в аналогичном формате, так что это было бы очень полезно, если бы я мог просто заставить этот пример работать.Спасибо!

1 Ответ

0 голосов
/ 02 сентября 2010

Полагаю, я просто использую регулярное выражение, такое как "(?:[^\\"]+|\\.)*", чтобы сделать это.

...