所以我一直在尝试提取文本文件中“dot”字符后面的字符串,但仅适用于遵循以下模式的行,即日期和时间之后:
2018年5月9日上午10:37•6PR,珀斯(早上好)
问题在于每一行,日期和时间都会发生变化,所以唯一常见的模式就是在“点”之前会有AM或PM。
但是,如果我搜索“AM”或“PM”,它将无法识别行,因为“AM”和“PM”附加到时间。
这是我目前的代码:
for i,s in enumerate(open(file)): for words in ['PM','AM']: if re.findall(r'\b' + words + r'\b', s): source=s.split('•')[0]
知道如何解决这个问题吗?谢谢。
答案 0 :(得分:1)
如果您尝试提取日期时间,请尝试使用正则表达式。
<强>实施例强>
Content-Type
<强>输出:强>
import re
s = "09 May 2018 10:37AM • 6PR, Perth (Mornings)"
m = re.search("(?P<datetime>\d{2}\s+(January|February|March|April|May|June|July|August|September|October|November|December)\s+\d{4}\s+\d{2}\:\d{2}(AM|PM))", s)
if m:
print m.group("datetime")
答案 1 :(得分:1)
我想你的正则表达式就是这里的问题。
for i, s in enumerate(open(file)):
if re.findall(r'\d{2}[AP]M', s):
source = s.split('•')[0]
# 09 May 2018 10:37AM