擅长:python、mysql、java
<p>同时使用<code>regex</code>和<code>datetime</code></p>
<pre><code>import re
from datetime import datetime
line = '<H2>04018 BIKF Keflavikurflugvollur Observations at 00Z 26 Feb 1983</H2>'
matches = re.findall(r"(\d{2}Z \d{2} [a-zA-Z]{3} \d{4})", line)
for match in matches:
line = line.replace(match, datetime.strptime(match, '%HZ %d %b %Y').strftime('%H-%d-%m-%Y'))
print(line)
</code></pre>
<p>另一个选项是直接使用<code>re.sub</code>,如下所示</p>
<pre><code>import re
from datetime import datetime
def my_replace(match):
match = match.group()
return datetime.strptime(match, '%HZ %d %b %Y').strftime('%H-%d-%m-%Y')
line = '<H2>04018 BIKF Keflavikurflugvollur Observations at 00Z 26 Feb 1983</H2>'
line = re.sub(r"(\d{2}Z \d{2} [a-zA-Z]{3} \d{4})", my_replace, line)
print(line)
</code></pre>
<p>输出为</p>
<pre><code> <H2>04018 BIKF Keflavikurflugvollur Observations at 00-26-02-1983</H2>
</code></pre>