import re
regex = re.compile(r"~~TemplateStart~~[\s\S]+?~~TemplateEnd~~")
test_str = ("<table cellSpacing=\"0\" cellpadding=\"0\" id=\"~~TableIDClass~~\" class=\"ContainerTable\">\n"
" <thead> \n"
" <tr class=\"header\">\n"
" <td class=\"TableTitle\">~~TableName~~</td>\n"
" </tr>\n"
" </thead>\n"
" <tbody class=\"~~TableIDClass~~ ClickableTableBody\">\n"
"~~TemplateStart~~\n"
" <tr data-type=\"~~Data-Type~~\" data-id=\"~~Data-ID~~\" data-date=\"~~Data-Date~~\" data-cost=\"~~Data-Cost~~\" class=\"TableText clickable AddMee\">\n"
" <td nowrap class=\"DateColumn\">~~Date~~</td>\n"
" <td nowrap class=\"JarColumn\"></td>\n"
" <td nowrap class=\"CategoryColumn\">~~Category~~</td>\n"
" <td nowrap class=\"NotesColumn\">~~Note~~</td>\n"
" <td nowrap class=\"CostColumn\">~~DefaultCostDot~~$~~Cost~~</td>\n"
" </tr>\n"
"~~TemplateEnd~~\n"
" </tbody>\n"
" <tfoot>\n"
" <tr>\n"
" <td norap colspan=\"5\">$<span class=\"TableTotal\"></span></td>\n"
" </tr>\n"
" </tfoot>\n"
"</table> ")
match = regex.search(test_str)
if match:
print(f"Match 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