Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing sscanf读取自定义简单日志格式?_Parsing_Logging_Scanf - Fatal编程技术网

Parsing sscanf读取自定义简单日志格式?

Parsing sscanf读取自定义简单日志格式?,parsing,logging,scanf,Parsing,Logging,Scanf,我为我的网站编写了一个简单的日志文件,格式如下: TIME: "..." IP: "..." HOST: "..." UA: "..." 并且想用sscanf作为练习的一部分来解析它。我的代码大致如下,在日志的每一行上运行: list($time, $ip, $host, $ua) = sscanf("TIME: %s IP: %s HOST: %s UA: %s", $line); 当然,这是PHP,但它是无关的,现在我认为这将工作,但它只是不解析任何东西。我现在知道它搞乱了,因为用户代

我为我的网站编写了一个简单的日志文件,格式如下:

TIME: "..." IP: "..." HOST: "..." UA: "..." 
并且想用sscanf作为练习的一部分来解析它。我的代码大致如下,在日志的每一行上运行:

list($time, $ip, $host, $ua) = sscanf("TIME: %s IP: %s HOST: %s UA: %s", $line);
当然,这是PHP,但它是无关的,现在我认为这将工作,但它只是不解析任何东西。我现在知道它搞乱了,因为用户代理或时间包含空间,所以它不工作

我对sscanf格式了解不多,但为了简单起见,希望使用它。有没有一种方法可以将引号作为单个实体读取(而不是仅使用普通的%s),这样它就可以正常工作


我有很多类似格式的日志,所以如果我能让这个例子工作起来,这将是非常有用的。谢谢大家!

我想我只需要使用一个正则表达式,比如
“(?:[^\\”]+\124;\\)*”
来完成它