'0[12]-[0-3][1-9]'
必要なすべての日付に一致しますが、01-03 などの日付にも一致します。その範囲内の日付のみを正確に一致させたい場合は、もう少し高度なことを行う必要があります。
Python で簡単に構成できる例を次に示します。
from calendar import monthrange
import re
startdate = (1,27)
enddate = (2,3)
d = startdate
dateList = []
while d != enddate:
(month, day) = d
dateList += ['%02i-%02i' % (month, day)]
daysInMonth = monthrange(2011,month)[1] # took a random non-leap year
# but you might want to take the current year
day += 1
if day > daysInMonth:
day = 1
month+=1
if month > 12:
month = 1
d = (month,day)
dateRegex = '|'.join(dateList)
testDates = ['01-28', '01-29', '01-30', '01-31', '02-01',
'04-11', '07-12', '06-06']
isMatch = [re.match(dateRegex,x)!=None for x in testDates]
for i, testDate in enumerate(testDates):
print testDate, isMatch[i]
dateRegex
次のようになります。
'01-27|01-28|01-29|01-30|01-31|02-01|02-02'
出力は次のとおりです。
01-28 True
01-29 True
01-30 True
01-31 True
02-01 True
04-11 False
07-12 False
06-06 False