use strict;
my $str = '<html><head><title>Aktuelle Werte</title><meta name=\'viewport\' content=\'width=device-width\'><style type=\'text/css\'>body{font-family:Arial;margin:0}.content{margin:10px}.r{text-align:right}td{vertical-align:top;}a{text-decoration:none;padding:10px;background:#38b5ad;color:white;display:block;width:auto;border-radius:5px;}input[type=\'text\']{width:100%;}input[type=\'password\']{width:100%;}input[type=\'submit\']{border-radius:5px;font-size:medium;padding:5px;}.submit_green{padding:9px !important;width:100%;border-style:none;background:#38b5ad;color:white;text-align:left;}</style></head><body><div style=\'min-height:120px;background-color:#38b5ad;margin-bottom:20px\'> <a href=\'/\' style=\'background:none;width:0;display:inline\'><img src=\'/images?name=luftdaten_logo\' style=\'float:left;margin:20px\'/></a> <h3 style=\'margin:0\'>Feinstaubsensor</h3> <small>ID: 2221799<br/>MAC: A0:20:A6:21:E6:XX<br/>Firmware: NRZ-2017-092</small></div><div class=\'content\'><h4>Übersicht » Aktuelle Werte</h4><table cellspacing=\'0\' border=\'1\' cellpadding=\'5\'><tr><th>Sensor</th><th>Parameter</th><th>Wert</th><tr><td colspan=\'3\'> </td></tr><tr><td>SDS011</td><td>PM2.5</td><td class=\'r\'>6.6 µg/m³</td></tr><tr><td>SDS011</td><td>PM10</td><td class=\'r\'>14.6 µg/m³</td></tr><tr><td colspan=\'3\'> </td></tr><tr><td>DHT22</td><td>Temperatur</td><td class=\'r\'>22.0 °C</td></tr><tr><td>DHT22</td><td>rel. Luftfeuchte</td><td class=\'r\'>59.0 %</td></tr><tr><td colspan=\'3\'> </td></tr><tr><td>WiFi</td><td>Signal</td><td class=\'r\'>-62 dBm</td></tr><tr><td>WiFi</td><td>Qualität</td><td class=\'r\'>76 %</td></tr></table><br/><br/><a href=\'/\' style=\'display:inline;\'>Zurück zur Startseite</a><br/><br/><br/><a href=\'http://codefor.de/\' target=\'_blank\' style=\'display:inline;background:none;width:0px;\'><img src=\'/images?name=cfg_logo\' style=\'width:200px;max-width:50%;\'/></a></div></body></html>';
my $regex = qr/(?:PM10<\/td><td class='r'>)(\d+.\d)/p;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
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 Perl, please visit: http://perldoc.perl.org/perlre.html