我正在编写一个程序来验证和更正给定日期作为字符串。让我们04121987
作为格式中的日期ddmmyyyy
。此类日期的正则表达式:
(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[012])(19\d\d|20\d\d)
如果我将我的字符串与正则表达式匹配,它会很好地工作。在 Python 中:
>>> regex = re.compile(r'(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[012])(19\d\d|20\d\d)')
>>> regex.findall('04121987')
[('04', '12', '1987')]
如果我有04721987
一个可以清楚地看到72
不是有效月份的字符串,那么该字符串将与正则表达式不匹配。
>>> regex.findall('04721987')
[]
我想知道的是导致正则表达式失败的字符及其位置。在这种情况下,它是7
。我怎么能在 Python 中做到这一点?