regex (pattern og matches)
HejsaJeg har følgende kode:
Pattern p1 = Pattern.compile("Route length: <b>\\s*((\\d+,\\d+)|(\\d+))\\s*km");
Matcher m1 = p1.matcher(test);
while (m1.find())
{
Pattern p2 = Pattern.compile("((\\d+,\\d+)|(\\d+))");
Matcher m2 = p2.matcher(m1.group());
while (m2.find())
{
String match = m2.group();
match = match.replace(',', '.');
double value = Double.parseDouble(match);
System.out.println(value);
}
}
Som finder to matches i min string test. Jeg vil egentlig kun have at den skal finde det sidste match.
Her finder den første match:
"København<br>0,6 km<br>01 min. " (det er de 0,6 der er match)
Her finder den anden match:
"<tr>
<td width=100%>
Route length: <b>
0,6 km </b></td>
</tr>"
Hvordan gør jeg så den kun finder sidste match? Jeg ved godt, at den jo bare overskriver den første double, men jeg syntes det er grimt, at den finder et unødigt match.
Hvis nogle kunne forklare hvad de enkelte tegn i det første pattern betyder ville det være forrygende :)
