用于解析 blue coat 日志文件的正则表达式

Regex to parse blue coat log file

我有这个正在尝试解析的日志文件。

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) 处拆分 我怎样才能完成正则表达式,以免发生这种情况?

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

使用 post 中描述的正则表达式:

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

不要对 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

我仔细研究了一下,发现日志文件不是 CSV 格式,这就是 CSV 解析正则表达式在我之前的回答中不起作用的原因。 (我还尝试用 excel 和 python csv 解析它,并且都在 'KHTML' 之后的逗号处拆分。

使用负向回顾可以正确解析您提供的示例。

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