2010-10-17 47 views
1

我想解析日期與正則表達式,使用組,但python正在返回空列表。我沒有做任何事情,只有12/25/10種東西。但我希望它能拒絕12/25-10。簡單的Python正則表達式組不能解析日期

date = re.compile("\d{1,2}([/.-])\d{1,2}\1\d{2}") 

我試過在線正則表達式庫,但他們的解決方案似乎也沒有運行。有任何想法嗎?

樣品輸入:「你好今天是10年10月18日,時間爲上午10:50」 滿懷希望的輸出:「10年10月18日」

我跑的Python 2.5。

+1

你想查找更長的字符串中的日期,還是你想確認給定的字符串是日期? – 2010-10-17 07:59:30

+0

我正在嘗試在一個較長的字符串中找到1個以上的日期,其中將填充其他內容。 – ehfeng 2010-10-18 15:49:11

回答

5

使用原始字符串:

date = re.compile(r"\d{1,2}([/.-])\d{1,2}\1\d{2}") 

否則,字符串常量在\1被解釋爲字符1(開始打頭的)。

編輯:要添加組的日期組件,使用:

re.compile(r"(\d{1,2})([/.-])(\d{1,2})\2(\d{2})") 
+0

當我嘗試這個,它所返回的是['/'] – ehfeng 2010-10-17 04:18:00

+0

我試過這個在python 2.5,2.6和3.1 :( – ehfeng 2010-10-17 04:18:20

+0

@ehfeng,這是因爲你沒有數字組。 – 2010-10-17 04:19:23

2

毫無疑問矯枉過正,但「parsedatetime」圖書館已經爲我工作:http://code.google.com/p/parsedatetime/

但它確實使用正則表達式內部,但不僅僅是解析MM/DD/YY格式。