// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"Vortag<\/td>.*?\n?.*?<td>(-?\d+\.?\d+)<").unwrap();
let string = "
<div id=\"divInfo\" class=\"cInfo\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" height=\"100%\">
<tr>
<td align=\"center\">
<table class=\"tablebody\" border=\"0\" width=\"100%\">
<tr>
<td class=\"cNavInfo\">Online-Werte » Wechselrichter-Übersicht</td>
</tr>
</table>
</td>
</tr>
<tr><td> </td></tr>
<tr>
<td class=\"tablebody\">
<table width=\"100%\" border=\"0\">
<tr class=\"tablehead\">
<td colspan=\"7\"><strong>Summe aller Wechselrichter</strong></td>
</tr>
<tr>
<td class=\"tablehead\">Bezeichnung</td>
<td class=\"tablehead\">Wert</td>
<td class=\"tablehead\">Einheit</td>
<td> </td>
<td class=\"tablehead\">Bezeichnung</td>
<td class=\"tablehead\">Wert</td>
<td class=\"tablehead\">Einheit</td>
</tr>
<tr>
<td>Aktuelle Leistung</td>
<td><b>8.404</b></td>
<td>kW</td>
<td> </td>
<td>Aktuelle Monatsenergie</td>
<td>1750.106</td>
<td>kWh</td>
</tr>
<tr>
<td>Aktuelle Tagesenergie</td>
<td><b>15.328</b></td>
<td>kWh</td>
<td> </td>
<td>Aktuelle Jahresenergie</td>
<td>2352.722</td>
<td>kWh</td>
</tr>
<tr>
<td>Tagesenergie Vortag</td>
<td>148.736</td>
<td>kWh</td>
<td> </td>
<td>Gesamtenergie</td>
<td>235217.714</td>
<td>kWh</td>
</tr>
</table>
</td>
</tr>
<tr><td> </td></tr>
<tr>
<td>
<table width=\"100%\" border=\"0\" class=\"tablebody\">
<tr class=\"tablehead\">
<td colspan=\"5\"><strong>Übersicht einzelner Wechselrichter</strong></td>
</tr>
<tr class=\"tablehead\">
<td width=\"10%\">Adresse</td>
<td width=\"10%\">Leistung</td>
<td width=\"15%\">Einheit</td>
<td width=\"10%\">Tagesenergie</td>
<td width=\"55%\">Einheit</td>
</tr>
<tr><td CLASS=\"cLink\"><A HREF=\"/httpGpmGotoWrID.cgi?0\">1</A></td><td>2505</td><td>W</td><td>4.536</td><td>kWh</td></tr><tr><td CLASS=\"cLink\"><A HREF=\"/httpGpmGotoWrID.cgi?1\">2</A></td><td>2552</td><td>W</td><td>4.880</td><td>kWh</td></tr><tr><td CLASS=\"cLink\"><A HREF=\"/httpGpmGotoWrID.cgi?2\">3</A></td><td>693</td><td>W</td><td>1.304</td><td>kWh</td></tr><tr><td CLASS=\"cLink\"><A HREF=\"/httpGpmGotoWrID.cgi?3\">4</A></td><td>2524</td><td>W</td><td>4.608</td><td>kWh</td></tr>
</table>
</td>
</tr>
<tr><td> </td></tr>
<tr><td align=\"center\"> </td></tr>
<tr><td> </td></tr>
<tr><td align=\"center\"> </td></tr>
<tr><td height=\"100%\"> </td></tr>
<tr>
<td align=\"center\">
<table width=\"100%\" border=\"0\" class=\"tablebody\">
<tr>
<td>Anmerkung: Die hervorgehobenen Werte werden alle 20s aktualisiert.</td>
</tr>
</table>
</td>
</tr>
<tr><td> </td></tr>
<tr><td> </td></tr>
</table>
<div class=\"x-align-right\">
<div class=\"cStatuszeile\"> Systemzeit 10:35:57 / 24.02.2018 </div>
</div>
</div>
</body>
</html>";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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 Rust, please visit: https://docs.rs/regex/latest/regex/