2011-04-15 91 views
0

我挣扎创建Apache日志正则表达式。我使用的日志格式如下。简单的regex帮助

我希望能够匹配任何词或短语,其中“/city/index.html”是。

66-121-89-14.domain.com - - [14/Apr/2011:14:47:05 +0100] "GET /city/index.html HTTP/1.1" 200 2577 "http://www.domain.com/referrer/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16"

可以一个正则表达式高手请帮忙?

--edit--

这是fail2ban上的ignoreregex。我真的希望能够像/house那样捕获该目录中的所有文件或/house/jonross.html以专门匹配该HTML文件。再次感谢。

+3

我不知道这是否帮助,但我已经注意到,谷歌已经细化罐头帮助解析Apache日志http://code.google.com/p/google-refine/观看视频,非常容易使用 – 2011-04-15 19:38:10

+0

谢谢你的提示。 – 2011-04-15 19:39:57

+0

你如何定义一个短语?你使用grep吗?你想用'/ city/index.html'匹配任何一行吗?还是你想做更多? – 2011-04-15 19:40:17

回答

1

如果“短语”你的意思是“行”,那么这将是多模式^.*/city/index\.html.*$

1
/^.*\/city\/index.html.*$/g 

这将匹配包含路径的任何线/city/index.html

样品在http://refiddle.com/10p

+0

我可能应该已经更清楚了,对不起,已经很晚了。这是为Fail2ban,如果这有什么区别为'ignoreregex'。请参阅上面的评论。 – 2011-04-15 20:06:16

1

/"\w+ (.*?) HTTP\//将捕获请求的URL。

0

几个小时的庭审和小时后,在情况下,它可以帮助别人,这样会忽略斜杠后用这句话后GET任何目录:

ignoreregex = .*\"GET \/(city|house|anything).*

对于.html点需要逃脱。