相关疑难解决方法(0)

使用preg_match解析Apache登录PHP

我需要将数据保存在表格中(用于报告,统计等...),以便用户可以按时间,用户代理等进行搜索.我有一个每天运行的脚本,它读取Apache日志然后将其插入数据库.

日志格式:

10.1.1.150 - - [29/September/2011:14:21:49 -0400] "GET /info/ HTTP/1.1" 200 9955 "http://www.domain.com/download/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1"
Run Code Online (Sandbox Code Playgroud)

我的正则表达式:

preg_match('/^(\S+) (\S+) (\S+) \[([^:]+):(\d+:\d+:\d+) ([^\]]+)\] \"(\S+) (.*?) (\S+)\" (\S+) (\S+) (\".*?\") (\".*?\")$/',$log, $matches);
Run Code Online (Sandbox Code Playgroud)

现在我打印时:

print_r($matches);

Array
(
    [0] => 10.1.1.150 - - [29/September/2011:14:21:49 -0400] "GET /info/ HTTP/1.1" 200 9955 "http://www.domain.com/download/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1"
    [1] => 10.1.1.150
    [2] => - …
Run Code Online (Sandbox Code Playgroud)

php regex apache logging

28
推荐指数
1
解决办法
2万
查看次数

什么是正则表达式匹配任何东西,除了双引号之前没有反斜杠?

换句话说,我有一个字符串:

"任何东西,逃脱双引号:\",是的,"这里的任何东西都不能匹配.

如何匹配引号内的所有内容?

我在想

^"((?<!\\)[^"]+)"

但我的头脑旋转,应该是积极的还是消极的看法?或者它是否有效?

如何匹配任何字符,除了双引号之外没有反斜杠?

regex

17
推荐指数
2
解决办法
2万
查看次数

java解析日志文件

我正在尝试解析以此格式登录的apache日志文件

LogFormat "%t %u [%D %h %{True-Client-IP}i %{UNIQUE_ID}e %r] %{Cookie}i %s \"%{User-Agent}i\" \"%{host}i\" %l %b %{Referer}i"
Run Code Online (Sandbox Code Playgroud)

下面是我正在测试的代码......

import java.util.regex.*;


interface LogExample {
    /** The number of fields that must be found. */
    public static final int NUM_FIELDS = 11;

    /** The sample log entry to be parsed. */
    public static final //String logEntryLine = "123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] \"GET /java/javaResources.html HTTP/1.0\" 200 10450 \"-\" \"Mozilla/4.6 [en] (X11; U; OpenBSD 2.8 i386; Nav)\"";
    String logEntryLine = "[02/Dec/2013:14:10:30 -0000] - [52075 …
Run Code Online (Sandbox Code Playgroud)

java apache logging

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache ×2

logging ×2

regex ×2

java ×1

php ×1