import re
regex = re.compile(r"(On\s.*<\n){0,1}(.*\n(\n){0,1}((^>+\s?.*$)+\n?)+)", flags=re.MULTILINE | re.IGNORECASE)
test_str = ("test comment reply in email\n\n"
"On 10.05.2016 16:06, MRKTNG wrote:\n"
"> New Message\n"
"> MRKTNG <#> \n"
">\n"
"> Your Profile Picture\n"
">\n"
"> Lisa Radzishevsky <#>\n"
"> May 10, 2016, 8:06 am\n"
">\n"
"> \n"
">\n"
"> \n"
">\n"
"> RE: Language learning\n"
">\n"
"> test subject\n"
">\n"
"> \n"
"> Reply \n"
"> <http://mandrillapp.com/track/click/30047086/vendori.local?p=eyJzIjoiLXVwS2lWRndOUXVibWozbmFVQ09qbVE3ZVdjIiwidiI6MSwicCI6IntcInVcIjozMDA0NzA4NixcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvdmVuZG9yaS5sb2NhbFxcXC9kb2N1bWVudFxcXC80ODEwNCNkaXNjdXNzaW9uXCIsXCJpZFwiOlwiY2YwYWFhNWE1ZWY5NDZmMDhlNjJmNmRiMTAyZDY4Y2VcIixcInVybF9pZHNcIjpbXCJhYzE1OWI2NTM2YTM0ZDkzYmU1MzE5Y2VmN2IzOWEwZGQzMjY2NWRkXCJdfSJ9> \n"
">\n"
">\n"
"> © 2015 MRKTNG. All Rights Reserved.\n"
"> 1 W Superior St. • Chicago • IL 60654 USA <#>\n"
">\n\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