【发布时间】:2015-08-17 04:25:35
【问题描述】:
我目前正在尝试以我无法正常执行的格式解析 apache 日志。 (尝试使用 goaccess)
在崇高的情况下,分隔符显示为 ENQ、SOH 和 ETX,我的理解也是“|”、空格和上标 L。我试图使用 re.split 来分隔日志的各个组件,但我'不知道如何处理上标 L。
在 sublime 上显示为 3286d68255beaf010000543a000012f1/Madonna_Home_1.jpgENQx628a135bENQZ1e5ENQAB50632SOHA50.134.214.130SOHC98.138.19.91SOHD42857ENQwwww.newprophecy.net...
ENQ 为 '|'当我在纯文本编辑器(如记事本)中打开文件时,SOH 为 ''
我只需要解析出 IP 地址,因此该行的其余部分几乎无关紧要。
目前我有
pkts = re.split("\s|\\|")
但我不知道L该怎么办。
【问题讨论】:
-
带有预期输出的示例会更好。
-
在正则表达式中复制粘贴下标L有什么问题?
-
请举个例子,比如输入样例和输出样例。
-
大多数网络服务器默认使用common log format。但它们通常也允许您更改它。如果可以,请选择一种日志格式,在该格式中使用通常未使用的字符作为字段分隔符。然后你可以做一个简单的
split()来获取不同的字段。 -
@AvinashRaj 添加了一个示例,我无法复制和粘贴 L,因为它默认为问号(尽管这可能是我不确定的实际字符)
标签: python regex logging extract