# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"Gesamtenergie.*\n.*\n*\s*\s(\d*)"
test_str = ("<!DOCtype HTML PUBLIC \"-//W3C//Dtd HTML 4.0 Transitional//EN\">\n"
"<html>\n"
"<head>\n"
"<meta HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=ISO-8859-1\">\n"
"<meta name=\"Generator\" CONTENT=\"ChrisB\">\n"
"<title>PV Webserver</title>\n"
"</head>\n"
"<body nof=\"(MB=(DefaultMasterborder, 65, 60, 150, 10), L=(HomeLayout, 700, 600))\" bgcolor=\"#EAF7F7\" text=\"#000000\" link=\"#0033CC\" vlink=\"#990099\" alink=\"#FF0000\" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>\n"
"<form method=\"post\" action=\"\">\n"
"<table cellspacing=\"0\" cellpadding=\"0\" width=\"770\" nof=\"ly\">\n"
"<tr><td height=\"5\"></td></tr>\n"
"<tr><td width=\"190\" height=\"55\"></td>\n"
"<td width=\"400\">\n"
" <font face=\"Arial,Helvetica,Geneva,Sans-serif,sans-serif\" size=\"+3\">\n"
" PIKO 5.5\n"
"<br><font size=\"+1\"> \n"
" S_Power (220)\n"
"</font>\n"
"</font>\n"
"</td>\n"
"<td><img alt=\"Logo\" height=\"42\" width=\"130\" src=\"KSE.gif\"></td>\n"
"</tr>\n"
"</table>\n\n"
"<font face=\"Arial,Helvetica,Geneva,Sans-serif,sans-serif\">\n"
"<table Border=\"0\" width=\"100%\"><tr>\n"
"<td width=\"150\"></td>\n"
"<td> <hr> </td>\n"
"</tr></table>\n"
"<table cellspacing=\"0\" cellpadding=\"0\" width=\"770\">\n"
"<tr><td></td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td colspan=\"2\">\n"
" <b>AC-Leistung</b></td>\n"
"<td> </td>\n"
"<td>\n"
" <b>Energie</b></td></tr>\n"
"<tr><td height=\"10\"></td></tr>\n\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
" aktuell</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"140\">  W</td>\n"
"<td width=\"100\">\n"
" Gesamtenergie</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" 33763</td>\n"
"<td width=\"50\">  kWh</td>\n"
"<td> </td></tr>\n"
"<tr height=\"2\"><td></td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
"  </td>\n"
"<td width=\"70\" align=\"right\">\n"
"  </td>\n"
"<td width=\"140\"> </td>\n"
"<td width=\"100\">\n"
" Tagesenergie</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" 22.85</td>\n"
"<td width=\"50\">  kWh</td>\n"
"<td> </td></tr>\n"
"<tr height=\"5\"><td></td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
" Status</td>\n"
"<td colspan=\"4\">\n"
" Aus</td>\n"
"<td> </td></tr>\n"
"<tr height=\"8\"><td></td></tr>\n"
"<tr><td colspan=\"7\">\n"
"<table align=\"top\" width=\"100%\"><tr>\n"
"<td width=\"182\"></td>\n"
"<td><hr size=\"1\"></font></td></tr>\n"
"<tr><td height=\"5\"></td></tr></table>\n"
"</td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td colspan=\"2\">\n"
" <b>PV-Generator</b></td>\n"
"<td width=\"140\"> </td>\n"
"<td colspan=\"2\">\n"
" <b>Ausgangsleistung</b></td>\n"
"<td width=\"30\"> </td>\n"
"<td> </td></tr>\n"
"<tr><td height=\"10\"></td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
" <u>String 1</u></td>\n"
"<td width=\"70\"> </td>\n"
"<td width=\"140\"> </td>\n"
"<td width=\"95\">\n"
" <u>L1</u></td>\n"
"<td width=\"70\"> </td>\n"
"<td width=\"30\"> </td>\n"
"<td> </td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
" Spannung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"140\">  V</td>\n"
"<td width=\"100\">\n"
" Spannung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"30\">  V</td>\n"
"<td> </td></tr>\n"
"<tr height=\"2\"><td></td></tr>\n"
"<tr valign=\"top\" align=\"left\">\n"
"<td width=\"190\"> </td>\n"
"<td width=\"100\">\n"
" Strom</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"140\">  A</td>\n"
"<td width=\"100\">\n"
" Leistung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"30\">  W</td>\n"
"<td> </td></tr>\n"
"<tr height=\"22\"><td></td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
" <u>String 2</u></td>\n"
"<td width=\"70\"> </td>\n"
"<td width=\"140\"> </td>\n"
"<td width=\"100\">\n"
" <u>L2</u></td>\n"
"<td width=\"70\"> </td>\n"
"<td width=\"30\"> </td>\n"
"<td> </td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
" Spannung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"140\">  V</td>\n"
"<td width=\"100\">\n"
" Spannung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"30\">  V</td>\n"
"<td> </td></tr>\n"
"<tr height=\"2\"><td></td></tr>\n"
"<tr valign=\"top\" align=\"left\">\n"
"<td width=\"190\"> </td>\n"
"<td width=\"100\">\n"
" Strom</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"140\">  A</td>\n"
"<td width=\"100\">\n"
" Leistung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"30\">  W</td>\n"
"<td> </td></tr>\n"
"<tr height=\"22\"><td></td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
" <u>String 3</u></td>\n"
"<td width=\"70\"> </td>\n"
"<td width=\"140\"> </td>\n"
"<td width=\"100\">\n"
" <u>L3</u></td>\n"
"<td width=\"70\"> </td>\n"
"<td width=\"30\"> </td>\n"
"<td> </td></tr>\n"
"<tr>\n"
"<td width=\"190\"></td>\n"
"<td width=\"100\">\n"
" Spannung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"140\"> \n"
" V</td>\n"
"<td width=\"95\">\n"
" Spannung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"30\">  V</td>\n"
"<td> </td></tr>\n"
"<tr height=\"2\"><td></td></tr>\n"
"<tr valign=\"top\" align=\"left\">\n"
"<td width=\"190\"> </td>\n"
"<td width=\"95\">\n"
" Strom</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"140\"> \n"
"A</td>\n"
"<td width=\"95\">\n"
" Leistung</td>\n"
"<td width=\"70\" align=\"right\" bgcolor=\"#FFFFFF\">\n"
" x x x </td>\n"
"<td width=\"30\">  W</td>\n"
"<td> </td></tr>\n\n"
"<tr><td height=\"15\"></td></tr>\n"
"<tr><td colspan=\"7\">\n"
"<table align=\"top\" width=\"100%\">\n"
"<tr><td width=\"182\"></td>\n"
"<td><hr size=\"1\"></font></td>\n"
"</tr><tr><td height=\"5\"></td></tr></table>\n"
"</td></tr></table>\n"
"<table cellspacing=\"0\" cellpadding=\"0\" width=\"770\">\n"
"<tr><td width=\"190\"></td>\n"
"<td><font face=\"Arial,Helvetica,Geneva,Sans-serif\">\n"
"<b>RS485 Kommunikation</b></td></tr>\n"
"<tr><td height=\"8\"></td></tr>\n"
"<tr><td width=\"190\"></td>\n"
"<td><font face=\"Arial,Helvetica,Geneva,Sans-serif\">\n"
"Wechselrichter \n"
"<input type=\"Text\" name=\"edWrNr\" value=\"220\" size=\"3\" maxlength=\"3\">\n"
"<input type=\"submit\" value=\"Anzeigen/Aktualisieren\">\n"
"</td></tr><tr><td height=\"10\"></td></tr>\n"
"</table>\n"
"</td></tr></table></font>\n\n"
"<hr>\n"
"<table cellspacing=\"0\" cellpadding=\"0\" width=\"770\">\n"
"<tr><td height=\"5\"></td></tr>\n"
"<tr><td width=\"190\"></td>\n"
"<td width=\"330\">\n"
"<font face=\"Arial,Helvetica,Geneva,Sans-serif,sans-serif\">\n"
"<a href=\"LogDaten.dat\">Historie</a>\n"
"     \n"
"<a href=\"Info.fhtml\">Infoseite</a></font></td>\n"
"<td align=\"right\">\n"
"<font face=\"Arial,Helvetica,Geneva,Sans-serif,sans-serif\">\n"
"<a href=\"Solar2.fhtml\">Einstellungen</a></font></td>\n"
"<td width=\"50\"></td>\n"
"</tr></table></font>\n"
"</form>\n"
"</body>\n"
"</html>\n")
matches = re.finditer(regex, test_str)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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