import re
regex = re.compile(r"""
@if \( (?P<condition>[^)]*) \)
\s*
(?P<content> [^@]*+ (?:@(?!endif\b)[^@]*)*+ )
@endif
""", flags=re.VERBOSE)
test_str = ("@if('0' == '0')\n"
" <div id=\"alert\" class=\"alert alert-danger\" style=\"display: inline-block\">fgh</div>\n"
"@endif\n"
"<form method=\"post\">\n"
"<button id=\"startLogik\" class=\"button\" type=\"submit\" name=\"start\">fgh</button>\n"
"</form>\n"
"@if('0' == '1')\n"
" <script type=\"text/javascript\">\n"
" Logik_SrvBsy = \"bsy\";\n"
" GetClientName();\n"
" Logik_Init(\"\", \"\", \"web\",\"test\",\"Start\");\n"
" Logik_SPar_fx(\"WEB_LOGIN.EMAIL\", \"mail@mail\");\n"
" Logik_SPar_fx(\"WEB_LOGIN.WEBID\", \"cvb\");\n"
" Logik_SPar_fx(\"WEB_LOGIN.LANG\", \"cvb\");\n"
" Logik_Exec_fx(\"Start\");\n"
"</script>\n"
"@endif")
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