Eu escrevi um regex não tão complexo com grupos para analisar o log facilmente
(?P<ipaddress>d{1,3}.d{1,3}.d{1,3}.d{1,3}) - - [(?P<dateandtime>d{2}/[a-z]{3}/d{4}:d{2}:d{2}:d{2} (+|-)d{4})] (("(GET|POST) )(?P<url>.+)(http/1.1"")) (?P<statuscode>d{3}) (?P<bytessent>d+) ([""](?P<refferer>(-)|(.+))[""]) ([""](?P<useragent>.+)[""])
Os grupos de captura nomeados são do estilo python 🙂
aqui estão outros 2 tipos de grupos que funcionam para outras linguagens.
(?'name'...)
(?<name>...)
Modifique como achar melhor.
“