热切出不同字符串的文本?

时间:2019-03-06 15:50:37

标签: python string list indexing

我只是想知道是否有一种方法可以从字符串中删除文本,或者仅在字符串信息不同时才捕获特定文本。

我正在使用的字符串的示例:

3/5/2019 12:38 PM
10/30/2019 6:32 AM
9/12/2019 9:53 AM

我希望能够分别提取一天中的日期和小时,并将其附加到列表中。但是显然,这些值会发生变化,甚至小时的索引也会随着日,月或小时的变化> 10而变化,从而将其推回至三个空格。

2 个答案:

答案 0 :(得分:2)

import re

s = "3/5/2019 12:38 PM"
result = re.compile(r"[\s\/:]").split(s)

result

['3', '5', '2019', '12', '38', 'PM']

假设输入的字符串相同时,这应该可以解决您的问题。

答案 1 :(得分:0)

您可以使用regular expressions 像这样的东西:

import re
m = re.match("(\d+/\d+/\d+) (\d+:\d+) (\wM)", "3/5/2019 12:38 PM")
print(m.groups())

这将打印一个元组,其中第一项是日期,第二项是时间,第三项是PM或AM:('3/5/2019', '12:38', 'PM'),您可以轻松地自己解析

修改

您还可以使用datetime模块来解析日期字符串:

import datetime
dt = datetime.datetime.strptime("3/5/2019 12:38 PM","%d/%m/%Y %I:%M %p")
print(dt.date(), dt.hour)

这将为您提供一个datetime对象,您可以从中获取所有信息