擅长:python、mysql、java
<p>我认为您应该更好地利用<a href="https://docs.python.org/3.4/library/re.html" rel="nofollow noreferrer">^{<cd1>}</a>模块的强大功能,正如<a href="https://stackoverflow.com/users/1033027/jules-mazur">Jules Mazur</a>对前面答案的评论所指出的,您需要设置某种过滤无效日期,下面是一个示例:</p>
<pre><code>>>> s
'HELDER ALVES DE OLIVEIRA18/06/1986RENAN ALVES DE OLIVEIRA06/08/2005'
>>>
>>> re.findall(r'((?:[1-2][0-9]|0[1-9]|3[0-1])/(?:0[0-9]|1[0-2])/(?:[1-2][0-9][0-9][0-9]))', s)
['18/06/1986', '06/08/2005']
>>>
>>> re.sub(r'(?P<Date>(?:[1-2][0-9]|0[1-9]|3[0-1])/(?:0[0-9]|1[0-2])/(?:[1-2][0-9][0-9][0-9]))', '\g<Date>\n', s)
'HELDER ALVES DE OLIVEIRA18/06/1986\nRENAN ALVES DE OLIVEIRA06/08/2005\n'
</code></pre>
<p>您可以在这个<a href="https://regex101.com/r/qE8yK4/1" rel="nofollow noreferrer">regex demo</a>中查看它的详细描述。
另外,您可以在regex库中找到更多日期和时间的高级<code>re</code>模式</p>