import re
regex = re.compile(r"^(Name=\")([A-Za-z\s\x22_]+)(\s+Value=\"[A-Za-z0-9-:\s]+\")([\/>\s]+)(.*)$", flags=re.MULTILINE)
test_str = ("App_Data App=\"MOD\" Name=\"Genre\" Value=\"Series\"/><App_Data App=\"MOD\" \n"
"Name=\"Show_Type\" Value=\"Series\"/><App_Data App=\"MOD\" Name=\"Billing_ID\" \n"
"Value=\"10092\"/><App_Data App=\"MOD\" Name=\"Licensing_Window_Start\" \n"
"Value=\"2019-05-07 00:00:00\"/><App_Data App=\"MOD\" \n"
"Name=\"Licensing_Window_End\" Value=\"2019-05-13 23:59:59\"/><App_Data \n"
"App=\"MOD\" Name=\"Preview_Period\" Value=\"0\"/><App_Data App=\"MOD\" \n"
"Name=\"Display_As_New\" Value=\"4\"/><App_Data App=\"MOD\" \n"
"Name=\"Display_As_Last_Chance\" Value=\"7\"/><App_Data App=\"MOD\" \n"
"Name=\"Provider_QA_Contact\" Value=\"NBC Universal\"/><App_Data App=\"MOD\" \n"
"Name=\"Suggested_Price\" Value=\"0.00\"/><App_Data App=\"MOD\" ")
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