简单的正则表达式帮助

时间:2011-04-15 19:35:33

标签: regex linux apache

我正在努力为Apache日志创建一个正则表达式。我正在使用的日志格式如下。

我希望能够匹配“/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"

正则表达式王牌请帮助吗?

- 编辑 -

这是针对Fail2ban的ignoreregex。我真的希望能够使用/house之类的内容来捕获该目录中的所有文件,或者/house/jonross.html专门用于匹配该HTML文件。再次感谢。

4 个答案:

答案 0 :(得分:1)

如果按“短语”表示“行”,则在多行模式下为^.*/city/index\.html.*$

答案 1 :(得分:1)

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

这将匹配包含路径/city/index.html

的任何行

http://refiddle.com/10p

的示例

答案 2 :(得分:1)

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

答案 3 :(得分:0)

经过几个小时的试验和小时后,如果它对其他人有帮助,这将忽略GET后斜线后面的任何目录:

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

对于.html,点需要转义。