gpt4 book ai didi

python - 从列表中的值查找字符串中文本的第一个实例

转载 作者:行者123 更新时间:2023-11-28 22:26:30 25 4
gpt4 key购买 nike

我有一个带有日期和开始/停止时间的字符串。我已经设法将日期从字符串中分离出来,但不确定如何提取开始/停止时间。

我的字符串看起来像 Jun/22/177:57am5:13pm9:16 其中 Jun/22/17 是日期,7:57am 是开始时间,5:13pm 是停止时间,9:16 是以小时和分钟为单位的持续时间。

我已经设法将日期值提取到单独的变量中(稍后使用)

x = "Jun/22/177:57am5:13pm9:16"

fulldate_str = x[x.find(" ")+1:x.find("/17")+3]
fulldate = datetime.strptime(fulldate_str, "%b/%d/%y")

date_day = fulldate.day
date_month = fulldate.month
date_year = fulldate.year

但是我可以得到开始时间和结束时间吗?我可以使用

拉出其余的字符串
inout = x[x.find("/17")+3:]

返回

7:57am5:13pm9:16

但我不确定如何在 am 之后和 pm 再次停止,然后在整个持续时间内停止。开始时间不会总是 am,停止时间也不会总是 pm,所以我想我需要对照列表 [ 'am', 'pm'] 但是

  1. 我不知道怎么办,而且
  2. 我认为我应该有更好的方法来做到这一点。

这有效,但前提是 am 是第一个,pm 是第二个:

time_in = x[x.find("/17")+3:x.find("am",x.find("/17")+3)+2]
time_out = x[x.find("am",x.find("/17")+3)+2:x.find("pm")+2]
duration = x[x.find("pm")+2:]

当然,我不需要持续时间,因为稍后可以很容易地计算出它。

最佳答案

这是一种适用于 am/pm 的任何顺序的方法,并且还应该处理长度为 3 或 4 位数字的时间(例如,下午 5:00 与凌晨 12:00):

x = "Jun/2/175:00pm12:00am9:16"

fulldate_str = x[x.find(" ")+1:x.find("/17")+3]
fulltime_spt = x[len(fulldate_str):].split("m")
for t in range(0,2):
fulltime_spt[t] += "m"

输出:

['5:00pm', '12:00am', '9:16']

关于python - 从列表中的值查找字符串中文本的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44729313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com