2011-04-15 93 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點需要逃脫。