I am trying to match dates in a string where the date is formatted as (month dd, yyyy). I am confused by what I see when I use my regex pattern below. It only matches strings that begin with a date. What am I missing?
>>> p = re.compile('[A-z]{3}\s{1,}\d{1,2}[,]\s{1,}\d{4}')
>>> s = "xyz Dec 31, 2013 - Jan 4, 2014"
>>> print p.match(s).start()
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'NoneType' object has no attribute 'start'
>>> s = "Dec 31, 2013 - Jan 4, 2014"
>>> print p.match(s).start()
0 #Correct
解决方案
Use the search method instead of match. Match compares the whole string but search finds the matching part.