import re
regex = re.compile(r"<td class=\"lineColumn\">(.*)<\/td>(.*)<td class=\"stationColumn\">(.*)<span(.*)<td class=\"inMinColumn\">(.*)<\/td>", flags=re.DOTALL)
test_str = ("\n\n\n"
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n"
"<html>\n"
"<head>\n"
" \n"
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\n"
" <meta name=\"viewport\" content=\"width=340px\">\n"
" <title>MVG-Live: Westkreuz Bf.</title>\n"
" <link type=\"text/css\" rel='stylesheet' href='css/size30/mvg/mvglive-mobile.css' media='all'>\n"
"</head>\n"
"<body>\n"
" <div class=\"departureTable header logo\">\n"
" <div class=\"logoLeft\">\n"
" <img class=\"logoImgLeft\" src=\"images/size30/grafik/mvg/mobile-logo-left.jpg\" alt=\"MVG live\">\n"
" </div>\n"
" <div class=\"logoRight\">\n"
" <img class=\"logoImgRight\" src=\"images/size30/grafik/mvg/mobile-logo-right.jpg\" alt=\"MVG live\">\n"
" </div>\n"
" </div>\n"
" \n"
" \n\n"
" \n"
" <table class=\"departureTable departureView\">\n"
" <tr>\n"
" <td colspan=\"2\" class=\"headerStationColumn\">Westkreuz Bf.</td>\n"
" <td colspan=\"2\" class=\"serverTimeColumn\">21:33</td>\n"
" </tr>\n"
" \n"
" \n"
" \n"
" <tr>\n"
" <td colspan=\"4\" class=\"sBahnHeader\">S-Bahn München (Daten DB Regio AG)</td>\n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Ebersberg(Oberbay)\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">1</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" Herrsching\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">5</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" München Flughafen Terminal\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">6</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Starnberg\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">11</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Ebersberg(Oberbay)\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">21</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" Weßling(Oberbay)\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">25</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" München Flughafen Terminal\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">26</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Tutzing\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">31</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Grafing Bahnhof\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">41</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" Herrsching\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">45</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" München Flughafen Terminal\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">46</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Tutzing\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">51</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Ebersberg(Oberbay)\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">61</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" Weßling(Oberbay)\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">65</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" München Flughafen Terminal\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">66</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Tutzing\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">71</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Ebersberg(Oberbay)\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">81</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" Herrsching\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">85</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowOdd\">\n"
" <td class=\"lineColumn\">S8</td> \n"
" <td class=\"stationColumn\">\n"
" München Flughafen Terminal\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">86</td>\n"
" \n"
" </tr>\n"
" \n"
" <tr class=\"rowEven\">\n"
" <td class=\"lineColumn\">S6</td> \n"
" <td class=\"stationColumn\">\n"
" Tutzing\n"
" <span class=\"spacer\"> </span>\n"
" </td> \n"
" <td class=\"inMinColumn\">91</td>\n"
" \n"
" </tr>\n"
" \n"
" \n"
" <tr> \n"
" <td colspan=\"4\" class=\"reloadLink\"> \n"
" <a href=\"/ims/dfiStaticAnzeige.svc?haltestelle=Westkreuz Bf.&ubahn=&bus=&tram=&sbahn=checked\">\n"
" Fahrten aktualisieren \n"
" </a>\n"
" </td>\n"
" </tr>\n"
" \n"
" </table>\n"
" <table class=\"departureTable footerTable\">\n"
" <tr>\n"
" <td class=\"footer\">\n"
" <a href=\"http://www.mvg-mobil.de/impressum.htm\" target=\"_blank\">Impressum</a> \n"
" </td>\n"
" </tr>\n"
" </table> \n"
"</body>\n"
"</html>")
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