正则表达式以在python中获取以下内容
我正在分析此文件internet.test它有多个条目其中一些条目是:正则表达式以在python中获取以下内容,python,regex,file,parsing,Python,Regex,File,Parsing,我正在分析此文件internet.test它有多个条目其中一些条目是: Jun 15 16:26:33 dnsmasq[1979]: query[AAAA] play.google.com from 192.168.1.11 Jun 15 16:27:13 dnsmasq[1979]: forwarded play.google.com to 8.8.8.8 Jun 15 16:27:45 dnsmasq[1979]: reply play.google.com is 2404:6800:400
Jun 15 16:26:33 dnsmasq[1979]: query[AAAA] play.google.com from 192.168.1.11
Jun 15 16:27:13 dnsmasq[1979]: forwarded play.google.com to 8.8.8.8
Jun 15 16:27:45 dnsmasq[1979]: reply play.google.com is 2404:6800:4007:810::200e
我想获取日期和时间(例如:从第1行Jun 15 16:26:33、第2行Jun 15 16:27:13和第3行Jun 15 16:27:45),并将其存储在列表中(例如:日期=['Jun 15 16:26:33'、'Jun 15 16:27:13'、'Jun 15 16:27:45'])
我试着从每行中提取前14个元素,如下所示,但没有成功
@staticmethod
def getDate():
Dates = []
date = ''
with open("internet.test", "r") as file:
for line in file:
for i in range(15):
date += line[i]
Dates.append(date)
return display(Dates)
是否可以使用正则表达式获取和存储日期和时间?您根本不需要正则表达式,使用
行[:15]
可以很容易地将行切割为14个字符,并且您的整个循环可以简化为一行代码,并具有一定的列表理解能力:
with open("internet.test", "r") as file:
return display([line[:15] for line in file])
或者通过两个步骤,使其更加明确易读:
with open("internet.test", "r") as file:
Dates = [line[:15] for line in file]
return display(Dates)
您根本不需要正则表达式,使用
行[:15]
可以很容易地将行切割为14个字符,并且您的整个循环可以简化为一行代码,只需一些列表理解:
with open("internet.test", "r") as file:
return display([line[:15] for line in file])
或者通过两个步骤,使其更加明确易读:
with open("internet.test", "r") as file:
Dates = [line[:15] for line in file]
return display(Dates)
您可以使用
^\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2}
来匹配日期。实时正则表达式
您可以使用
^\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2}
来匹配日期。实时正则表达式
尝试使用
^\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2}
如图所示。如何使用.split(“”
并循环每个元素?尝试使用^\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2}
如图所示。如何使用.split(“”)并循环每个元素?其不工作。。输出是:Dates=['u'、'u'、'u'、'u'…等等]如果文本文件的内容如您所说的那样,那是不可能的。手动打开文件并更正您的问题,以便在其内部显示读取的数据。对不起,打印您建议的代码段是我的错误!谢谢你……它不起作用了。。输出是:Dates=['u'、'u'、'u'、'u'…等等]如果文本文件的内容如您所说的那样,那是不可能的。手动打开文件并更正您的问题,以便在其内部显示读取的数据。对不起,打印您建议的代码段是我的错误!非常感谢。