# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(?P<browser>Android|Ios|Windows)\s(?P<major_version>\d+)\.(?P<minor_version>\d+\.?\d?);(?P<lang>\spt-br|\seng|\sita|\sesp|\sjap|\srus|\skor|\sch){0,1};{0,1}(?P<device>[ \w\-?]+)\s"
test_str = ("20-03-2017 17:26:39\n"
"GET /ourapps.php HTTP/1.1\n\n"
"HTTP headers:\n"
"Accept-Language: pt-BR,en-US;q=0.8\n"
"Accept-Encoding: gzip, deflate\n"
"User-Agent: Mozilla/5.0 (Linux; Android 5.1; 4017F Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.121 Mobile Safari/537.36\n"
"Accept: application/json, text/plain, */*\n"
"Connection: close\n\n"
"20-03-2017 20:17:08\n"
"GET /ourapps.php HTTP/1.1\n\n"
"HTTP headers:\n"
"Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7\n"
"Accept-Language: pt-BR, en-US\n"
"Accept-Encoding: gzip,deflate\n"
"X-Wap-Profile: http://gsm.lge.com/html/gsm/E467f-M3-D1.xml\n"
"User-Agent: Mozilla/5.0 (Linux; U; Android 4.1.2; pt-br; LG-E467f Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30\n"
"Accept: application/json, text/plain, */*\n"
"Connection: close\n\n"
"20-03-2017 21:09:36\n"
"GET /ourapps.php HTTP/1.1\n\n"
"HTTP headers:\n"
"Accept-Language: pt-BR,en-US;q=0.8\n"
"Accept-Encoding: gzip,deflate\n"
"User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; eng; SM-G355M Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36\n"
"Accept: application/json, text/plain, */*\n"
"Connection: close\n")
matches = re.finditer(regex, test_str)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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