正则表达式解析蓝色外套日志文件

时间:2019-03-21 21:31:05

标签: regex parsing splunk

我有当前要解析的日志文件。

Jan 12 2019, 14:51:23, 117, 10.0.0.1, neil.armstrong, standard-users, -, TCP_Connect, "sports betting", -, 201, accept, GET, text, https, www.best-site.com, 443, /pages/home.php, ?user=narmstrong&team=wizards, -, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome Safari/537.36", 192.168.1.1, 1400, 1463, -, -, -
Jan 12 2019, 14:52:14, 86, 10.0.0.1, neil.armstrong, standard-users, -, TCP_Connect, "sports betting", -, 200, accept, POST, text, https, www.upload.best-site.com, 443, /, -, -, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537", 192.168.1.1, 230056, 600, -, -, -
Jan 12 2019, 14:52:54, 118, 10.0.0.1, neil.armstrong, standard-users, -, TCP_Connect, "sports betting", -, 200, accept, GET, text/javascript, http, google.fr, 80, /search, ?q=wizards, -, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537", 192.168.1.1, 1717, 17930, -, -, -

这是我当前正在使用的正则表达式https://regex101.com/r/Asbpkx/3,它可以很好地解析日志文件,直到达到"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537",然后在(KHTML, =like Gecko)处拆分 我该如何完成正则表达式,以免发生这种情况?

3 个答案:

答案 0 :(得分:0)

您似乎正在尝试使用正则表达式解析csv。

使用本文中描述的正则表达式: https://stackoverflow.com/a/18147076/9397882

正则表达式:(?:^|,)(?=[^"]|(")?)"?((?(1)[^"]*|[^,"]*))"?(?=,|$)

答案 1 :(得分:0)

请勿将正则表达式用于CSV。试试这些props.conf设置。

[mysourcetype]
INDEXED_EXTRACTIONS = CSV
FIELD_DELIMITED = ,
FIELD_QUOTE = "
FIELD_NAMES = Date, Time, Field3, IP_Addr, Field4, Field5, Field6
TIMESTAMP_FIELDS = Date, Time

答案 2 :(得分:0)

我仔细研究了一下,日志文件不是CSV格式,这就是为什么CSV解析正则表达式在我先前的回答中不起作用的原因。 (我还尝试使用excel和python csv对其进行解析,并且两者均在'KHTML'之后以逗号分隔。

在后面使用负数可以使您正确解析该示例。

(.+?)(?<!KHTML),