2012-09-16 38 views
0

我正在寫一個Django應用程序來收集和分析來自各種不同應用程序的日誌文件。我希望用戶能夠提供日期格式或匹配日期格式的正則表達式,以便我可以跟蹤文件的開始和結束時間。搜索並提取用戶提供的模式的日期

我寧願沒有用戶提供正則表達式和日期格式,但我認爲沒有辦法繞過它。

我想提取文件中的第一個和最後一個日期時間,並將其解析爲python中的日期時間對象。正如我所說,日期的格式將以某種方式由用戶提供。

有沒有辦法從日期格式構建正則表達式,反之亦然?或者我只需要一種格式和模式?

回答

2

如果您的用戶可以提供格式爲strptime的日期格式,則不需要使用正則表達式。 strptime非常靈活,可處理大多數日期格式。

編輯

由於strptime不允許任意文本搜索,你可能需要一個正則表達式。把一個不規則的模式變成一個正則表達式並不是微不足道的,但弗雷德裏克隆德爲你做了。您可以在這裏找到代碼:http://effbot.org/librarybook/time.htm

查找了一句:「示例:strptime實施」

+0

漢斯,但我需要能夠找到任意文本..第一部分是從提取模式一個文件,第二部分是解析。 –

+0

所以基本上你的問題是你想要在日期模式上進行搜索,但是strptime只能在固定的字符串上工作? –

+0

可以將日期模式轉換爲正則表達式。這將取決於您允許用戶輸入日期的自由度。 –