python - 将具有多个日期的字符串转换为日期时间
问题描述
如果我的字符串只包含一个日期,我会使用这个:
datetime.datetime.strptime(string, '%b %d %Y').strftime('%Y-%m-%d')
但由于沿线有很多,我不知道如何进行。我如何才能读取字符串并仅在需要时进行更改?
所以这是我的字符串:
s = 'Mar 27 2000*56.75*58.39*Mar 26 2000*53.10*56.13*Mar 25 2000*51.50*52.00'
以及我之后的期望:
s = '2000-03-27*56.75*58.39*2000-03-26*53.10*56.13*2000-03-25*51.50*52.00'
解决方案
如果所有字符串日期都采用相同的格式,您可以使用正则表达式来获取字符串中的日期然后替换它,我正在考虑这样的事情:
import re
import datetime
def operate_on_replacement(matchObj):
match = matchObj.group(0)
return datetime.datetime.strptime(match, '%b %d %Y').strftime('%Y-%m-%d')
start_string = 'Mar 27 2000*56.75*58.39*Mar 26 2000*53.10*56.13*Mar 25 2000*51.50*52.00'
replaced_string = re.sub(r'\w{3}\s{1}\d{2}\s{1}\d{4}', operate_on_replacement, start_string)
推荐阅读
- c# - 配置“RequireHttpsAttribute”过滤器以考虑 X-Forwarded-Proto
- javascript - 为什么 litteral 循环输出额外的逗号?
- swift - 无法移动包含自定义按钮的视图
- oracle - OBIEE 中的 nqsError 14046。两个表之间没有物理连接退出
- javascript - Js 和 wordpress 帮助...它去哪里了?
- javascript - 在 iOS 设备上自动播放的视频
- python - 如何使用 Keras 的 conv2d_transpose?
- c# - 在 Xamarin 表单中,SetEnvironmentVariable
- go - Conn 在 Go 中随机关闭且没有警告
- php - Laravel 视图包含额外的 '<' 字符