Python 提取随时间字符串变化的字符串
因此,我一直在尝试提取文本文件中“点”字符后面的字符串,但仅针对以下模式的行,即日期和时间之后的行: 2018年5月9日上午10:37•下午6点,珀斯(上午) 问题是,对于这些行中的每一行,日期和时间都会发生变化,因此唯一常见的模式是在“点”之前有AM或PM 但是,如果我搜索“AM”或“PM”,它将不会识别这些行,因为“AM”和“PM”附加在时间上 这是我当前的代码:Python 提取随时间字符串变化的字符串,python,regex,Python,Regex,因此,我一直在尝试提取文本文件中“点”字符后面的字符串,但仅针对以下模式的行,即日期和时间之后的行: 2018年5月9日上午10:37•下午6点,珀斯(上午) 问题是,对于这些行中的每一行,日期和时间都会发生变化,因此唯一常见的模式是在“点”之前有AM或PM 但是,如果我搜索“AM”或“PM”,它将不会识别这些行,因为“AM”和“PM”附加在时间上 这是我当前的代码: 你知道怎么解决这个问题吗?多谢各位 如果要提取日期时间,请尝试使用正则表达式 Ex: import re s = "09 Ma
你知道怎么解决这个问题吗?多谢各位 如果要提取日期时间,请尝试使用正则表达式 Ex:
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")
09 May 2018 10:37AM
如果您试图提取日期时间,请尝试使用正则表达式 Ex:
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")
09 May 2018 10:37AM
我想你的正则表达式是这里的问题
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
我想你的正则表达式是这里的问题
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
@NguyenTuongBaoKim使用
r'\d{2}[AP]M'
then.@WiktorStribiżew更新代码以包含该重构,谢谢。@NguyenTuongBaoKim使用r'\d{2}[AP]M'
then.@WiktorStribiżew更新代码以包含该重构,谢谢。因为更改日期时间不会更改给定时间字符串格式的长度。如果s中的'AM•'或s:dt=s[:19]中的'PM•',那么简单地使用包含check with:的字符串如何?
,因为更改日期时间不会更改给定时间字符串格式的长度。如果s中的'AM•'或s中的'PM•'dt=s[:19]