python - Python 中的迄今为止的字符串(00Z 1983 年 2 月 26 日至 00-26-02-83)
问题描述
我有一个文本文件,我需要在其中细化包含日期的行(例如 00Z 2 月 26 日)想要从字符串中提取日期,如下所示:
<H2>04018 BIKF Keflavikurflugvollur Observations at 00Z 26 Feb 1983</H2>
<H2>04018 BIKF Keflavikurflugvollur Observations at 12Z 26 Feb 1983</H2>
<H2>04018 BIKF Keflavikurflugvollur Observations at 00Z 28 Feb 1983</H2>
<H2>04018 BIKF Keflavikurflugvollur Observations at 12Z 28 Feb 1983</H2>
等等。
所以我想找到包含日期的行,然后提取 00Z 26 Feb 1983 并将其转换为 00-26-02-1983。怎么可能在 Python 中做到这一点?谢谢
解决方案
一起使用regex
_datetime
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)
另一种选择是re.sub
直接使用如下
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)
输出是
<H2>04018 BIKF Keflavikurflugvollur Observations at 00-26-02-1983</H2>
推荐阅读
- java - 从末尾开始返回双向链表的索引(向后)
- java - 不启动 mainactivity
- c# - 如何将整数值从 5 个不同的文本框传递到 2 个不同的文本框
- sqlite - SQLite 计数、分组和按计数排序(带分隔符 |)
- python - 如何解决无法连接'str'和'file'对象错误?
- java - 从内部类设置数组后,数组变得未初始化
- android - 复选框选中的列表项 - Xamarin android
- node.js - 在控制台中仍然有一个 GET 404 NOT FOUND
- npm - 如果没有 npm start,我无法让我的 React Web 应用程序正常工作..任何帮助
- python-3.x - 如何在烧瓶获取请求中格式化输出为 Json