import re
regex = re.compile(r".*\d\s(\d+-\d+-\d+T\d+:\d+:\d+)(\+\d+:\d+)\s.*?\s(\d+,\d+\/\d+\/\d+) .*? .*? .*? (\d+:\d+:\d+),\d+,THREAT,(url),(\d+,\d+\/\d+\/\d+ \d+:\d+:\d+),(\d+\.\d+\.\d+\.\d+),.*")
test_str = "<14>1 2017-07-17T12:06:14+00:00 PA-VM 1,2017/07/17 - - - 05:11:16,007055000020053,THREAT,url,1,2017/07/17 05:11:16,10.10.201.182,13.107.4.50,10.10.6.64,13.107.4.50,Segmented_to_PVT,,,ms-update,vsys1,User Zone,PUB Zone,ethernet1/1,ethernet1/3,Log_Forwarding_Profile,2017/07/17 05:11:16,41324,1,56881,80,3969,80,0x40b000,tcp,alert,\"au.download.windowsupdate.com/c/msdownload/update/software/secu/2017/07/windows10.0-kb4025339-x64_5_630b3945c0f68f2e3de0d8779d1e1e6c036e19ca.psf\",(9999),computer-and-internet-info,informational,client-to-server,437956,0x0,10.0.0.0-10.255.255.255,United States,0,,0,,,3,,,AppThreat-0-0,0x0,,,,,,0,0,0,0,0,,PA-VM,,,,get,0,,0,,N"
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html