import re
regex = re.compile(r"<(\w+)\s[^>]*id=\"editable4\"[^>]*>[\s\S]*\1>", flags=re.MULTILINE)
test_str = ("\n"
" <body>\n"
" <h1 id=\"editable1\" class=\"editable\" contenteditable=\"false\">\n"
" h8888899</h1>\n"
" <p id=\"editable2\" class=\"editable\">\n"
" Lorem ipsum dolor sit amet consectetur,\n"
" adipisicing elit. Ad, veniam in tempora voluptatum vel\n"
" sequi, nulla, corporis nobis eum aliquid molestiae porro\n"
" culpa doloribus. At eveniet quaerat possimus tempora nulla.\n"
" </p>\n"
" \n"
" <h2 id=\"editable3\" class=\"editable\">\n"
" h2 Lorem ipsum dolor sit amet consectetur \n"
" </h2>\n"
" <br> \n"
" <div id=\"editable_div1\" class=\"editable\">\n"
" DIV1 sequi, nulla, corporis nobis eum aliquid molestiae porro\n"
" culpa doloribus. At eveni\n"
" </div>\n"
" <br> \n"
" <p id=\"editable4\" class=\"editable\">\n"
" Lorem ipsum dolor sit amet consectetur,\n"
" adipisicing elit. Ad, veniam in tempora voluptatum vel\n"
" sequi, nulla, corporis nobis eum aliquid molestiae porro\n"
" culpa doloribus. At eveniet quaerat possimus tempora nulla.\n"
" </p>\n"
" <br>\n"
" <div id=\"editable_div\" class=\"editable\">\n"
" DIV sequi, nulla, corporis nobis eum aliquid molestiae porro\n"
" culpa doloribus. At eveni\n"
" </div>\n"
" <br>\n"
" <h3 id=\"editable5\" class=\"editable\">\n"
" h3 Lorem ipsum dolor sit amet consectetur \n"
" </h3>\n"
" <p id=\"editable6\" class=\"editable\">\n"
" Lorem ipsum dolor sit amet consectetur,\n"
" adipisicing elit. Ad, veniam in tempora voluptatum vel\n"
" sequi, nulla, corporis nobis eum aliquid molestiae porro\n"
" culpa doloribus. At eveniet quaerat possimus tempora nulla.\n"
" </p>\n"
" <br>\n"
" <br>\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