- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个日期列表作为字符串。它看起来像这样:
[
"January 29-30 Meeting - 2013",
"March 19-20 Meeting - 2013",
"April/May 30-1 Meeting - 2013",
"June 18-19 Meeting - 2013",
"July 30-31 Meeting - 2013",
"September 17-18 Meeting - 2013",
"October 29-30 Meeting - 2013",
"December 17-18 Meeting - 2013"
]
我需要将这些日期解析为datetime
格式。
datetime.strptime("January 29-30 Meeting - 2013", "%B %d-[something] - %Y")
datetime.strptime("January 29-30 Meeting - 2013", "%B [something]-%d [something] - %Y")
有什么方法可以告诉 strptime 在格式说明符中忽略 [something]
中的文本,因为它可以是可变的?是否有可变文本的格式说明符?
最佳答案
strptime
没有通配符指令。您可以在此处查看指令列表 https://docs.python.org/3/library/time.html#time.strftime
解决问题的明智方法是将正则表达式与 strptime
结合使用。 IE。使用正则表达式过滤掉文本并将剩余的受限文本放入 strptime
,或者将匹配的组直接传递到 datetime
。
import re
from datetime import datetime
ss = [
"January 29-30 Meeting - 2013",
"March 19-20 Meeting - 2013",
"April/May 30-1 Meeting - 2013",
"June 18-19 Meeting - 2013",
"July 30-31 Meeting - 2013",
"September 17-18 Meeting - 2013",
"October 29-30 Meeting - 2013",
"December 17-18 Meeting - 2013"
]
FORMAT = '%B %d %Y'
for s in ss:
match = re.search(r"(\w+)\s(\d+)-(\d+)\s.*\s(\d{4})", s)
if match:
dt1 = datetime.strptime(f'{match.group(1)} {match.group(2)} {match.group(4)}', FORMAT)
dt2 = datetime.strptime(f'{match.group(1)} {match.group(3)} {match.group(4)}', FORMAT)
print (dt1, dt2)
请注意,您还有 April/May 30-1
并发症,我没有解决这个问题,因为您没有问这个问题。
不过作为奖励:
for s in ss:
match = re.search(r"((\w+)/)?(\w+)\s(\d+)-(\d+)\s.*\s(\d{4})", s)
if match:
dt1 = datetime.strptime(
f'{match.group(2) if match.group(2) else match.group(3)} {match.group(4)} {match.group(6)}', FORMAT)
dt2 = datetime.strptime(
f'{match.group(3)} {match.group(5)} {match.group(6)}', FORMAT)
print (dt1, dt2)
另外,请注意下面@blhsing 提供的有趣的解决方案,如果有点 hacky,涉及 _strptime.TimeRE
。我不建议做那样的事情,但有趣的是知道你实际上可以用这种方式改变 strptime
本身的行为。
关于带有可变文本的 Python strptime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54451081/
表架构 DROP TABLE bla; CREATE TABLE bla (id INTEGER, city INTEGER, year_ INTEGER, month_ INTEGER, val I
我需要拆分字符串/或从具有以下结构的字符串中获取更容易的子字符串。 字符串将来自 window.location.pathname 或 window.location.href,看起来像 text/n
每当将对象添加到数组中时,我都会尝试更新 TextView ,并在 TextView 中显示该文本,如下所示: "object 1" "object 2" 问题是,每次将新对象添加到数组时,它都会覆盖
我目前正在寻找使用 Java 读取网站可见文本并将其存储为纯文本字符串的方法。 换句话说,我想转换成这样: Hello stupid World进入“ Hello World ” 或者类似的东西 Un
我正在尝试以文本和 HTML 格式发送电子邮件,但无法正确发送正确的 header 。特别是,我想设置 Content-Type header ,但我找不到如何为 html 和文本部分单独设置它。 这
我尝试了上面的代码,但我无法绑定(bind)文本,我怎样才能将资源内部文本 bloc
我刚刚完成了 Space Shooter 教程,由于没有 GUIText 对象,所以我创建了 UI.Text 对象并进行了相应的编码。它在统一播放器中有效,但在构建 Web 应用程序后无效。我花了一段
我有这个代码: - (IBAction)setButtonPressed:(id)sender { NSUserDefaults *sharedDefaults = [[NSUserDefau
抱歉标题含糊不清,但我想不出我想在标题中做什么。无论如何,对于图像上的文本,我使用了 JLabel 文本并将其添加到图标中。 JLabel icon = new JLabel(new Imag
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我在将 Twitter 嵌入到我从 HTML 5 转换的 wordpress 运行网站时遇到问题。 我遇到的问题是推文不是我的自定义字体... 这是我无法使用任何 css 定位的 HTML 代码,我正
我正在尝试找到解决由于使用以下形式的代码而导致的冗余字符串连接问题的最佳方法: logger.debug("Entering loop, arg is: " + arg) // @1 在大多数情况下,
我写了这个测试 @Test public void removeRequestTextFromRouteError() throws Exception { String input = "F
我目前正在创建一个正则表达式来拆分所有匹配以下格式的字符串:&[文本],并且需要获取文本。字符串可能类似于:something &[text] &[text] everything &[text] 等
有没有办法将标题文本从一个词变形为另一个词,同时保留两个词中使用的字母?我看过的许多 css 文本动画大多是视觉的,很少有旋转整个单词的。 我想要做的是从一个词过渡,例如“BEACH”到“CHANGE
总结matplotlib绘图如何设置坐标轴刻度大小和刻度。 上代码: ?
我在容器 (1) 中创建了容器 (2)。你能帮忙如何向容器(1)添加文本吗?下面是我的代码 return Scaffold( body: Padding( padding: c
我似乎找不到任何人或任何人这样做过。我试图限制我们使用的图像数量,并想创建一个带有渐变作为其“颜色”的文本,并在其周围设置渐变轮廓/描边 到目前为止,我还没有看到任何将两者结合在一起的东西。 我可以自
我正在为视频游戏暗黑破坏神 2 使用 discord.py 构建一个不和谐机器人。其中一项功能要求机器人从暗黑破坏神 2 屏幕截图中提取项目的名称和属性。我目前正在为此使用 pytesseract,但
我很难弄清楚如何旋转 strip.text theme 中的属性来自 ggplot2 .我使用的是 R 版本 3.4.2 和 ggplot2 版本 2.2.1。 以下是 MWE 的数据。 > dput
我是一名优秀的程序员,十分优秀!