private static final Pattern POINTS_PATTERN = Pattern.compile( "(doc\\(['\"](hp|mp)[^r]*r><span\\s+class=['\"]?(black|red)['\"]?>)(\\d+)" );
doc("mp");' title="Muscularity Points" alt="Muscularity Points"><br><span class=black>3 / 45</span>
When I actually test it in mafia ...
String stat = matcher.group( 2 ).toUpperCase();
RequestLogger.printLine( stat + " " + hp );
instead of(hp|mp).*<br>
(hp|mp).*?<br>
So I should have seen 4 lines of output instead of the 2 that I actually saw. As if it is using instead of
Also, keep in mind that currently-used regex IS giving me an MP restore link (I am not a muscle class right now), basically ruling out anything having to do with the HTML being weird there as an explanation. We want the regex to catch<td align=center><img src="http://images.kingdomofloathing.com/itemimages/hp.gif" class=hand onclick='doc("hp");' title="Hit Points" alt="Hit Points"><br><span class=black>821 / 840</span></td><td align=center><img src="http://images.kingdomofloathing.com/itemimages/mp.gif" class=hand onclick='doc("mp");' title="Mojo Points" alt="Mojo Points"><br><span class=black>748 / 858</span></td></tr><tr><td align=center>
but instead the suggested change is catching");' title="Hit Points" alt="Hit Points"><br>
as far as I can tell.");' title="Hit Points" alt="Hit Points"><br><span class=black>821 / 840</span></td><td align=center><img src="http://images.kingdomofloathing.com/itemimages/mp.gif" class=hand onclick='doc("mp");' title="Mojo Points" alt="Mojo Points"><br>
package xkiv;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class Main {
private Main() {
}
public static void main(String[] args) throws Exception {
Pattern pat = Pattern.compile("(doc\\(['\"](hp|mp).*?<br><span\\s+class=['\"]?(black|red)['\"]?>)(\\d+)");
String text = "<td align=center><img src=\"http://images.kingdomofloathing.com/itemimages/hp.gif\" class=hand onclick='doc(\"hp\");' title=\"Hit Points\" alt=\"Hit Points\"><br><span class=black>821 / 840</span></td><td align=center><img src=\"http://images.kingdomofloathing.com/itemimages/mp.gif\" class=hand onclick='doc(\"mp\");' title=\"Mojo Points\" alt=\"Mojo Points\"><br><span class=black>748 / 858</span></td></tr><tr><td align=center>";
Matcher m = pat.matcher(text);
while (m.find()) {
System.out.println(m.group(1));
}
}
}
/*
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
*/
/*
Output:
doc("hp");' title="Hit Points" alt="Hit Points"><br><span class=black>
doc("mp");' title="Mojo Points" alt="Mojo Points"><br><span class=black>
*/