2012-06-01 48 views
1

我試圖寫一個RE找到所有mm/dd格式蟒蛇正則表達式日期格式mm/dd

re = "((1[0-2])|(0?[0-9]))/(((1[0-9])|(2[0-9])|(3[0-1])|(0?[0-9])))" 

它發現所有mm/dd格式,但也給出了類似的事情,

11/22 in 12311/22213 

10/22 in 1110/22213 

如何排除上述情況?

感謝

回答

1
(?<!\d)((1[0-2])|(0?[0-9]))/(((1[0-9])|(2[0-9])|(3[0-1])|(0?[0-9])))(?!\d) 

當然它會像2月31日匹配的東西,但是這是一個開始。我發佈了here一個只匹配有效日期的正則表達式。

+0

最邊緣的情況是02/29,這在某些年份是有效的,而不是在其他年份。 – nhahtdh

+2

這是不可能通過正則表達式捕獲:-) – dda