package cgeo.geocaching; import java.util.regex.Pattern; /** * These patterns have been optimized for speed. Improve them only if you can prove * that *YOUR* pattern is faster. Use RegExRealPerformanceTest to show. * * @author blafoo */ public final class GCConstants { /** * For further information about patterns have a look at * http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html */ public final static Pattern PATTERN_HINT = Pattern.compile("
]*>(.*?)
"); public final static Pattern PATTERN_DESC = Pattern.compile("(.*?)[^<]*[^<]*

[^<]*

[^<]*

[^<]*\\W*Additional Hints"); public final static Pattern PATTERN_SHORTDESC = Pattern.compile("(.*?)[^\\w^<]*"); public final static Pattern PATTERN_GEOCODE = Pattern.compile("[^<]*]*>[^S]*Size[^:]*:[^<]*]*>[^<]*\"Size:]*>[^<]*[^<]*[^<]*[^<]*

"); public final static Pattern PATTERN_LATLON = Pattern.compile("]*>(.*?)"); public final static Pattern PATTERN_LOCATION = Pattern.compile("In (.*?)<"); public final static Pattern PATTERN_PERSONALNOTE = Pattern.compile("

]*>(.*?)

"); public final static Pattern PATTERN_NAME = Pattern.compile("(.*?)"); public final static Pattern PATTERN_DIFFICULTY = Pattern.compile("]*>[^<]*\"");]*>[^<]*\"");]*>[^<]*[^<]*

"); public final static Pattern PATTERN_FOUND_ALTERNATIVE = Pattern.compile("
[^<]+([^<]+)"); public final static Pattern PATTERN_TYPE = Pattern.compile("\"([^\"]+?)\"\\W*Hidden[\\s:]*([^<]+?)"); public final static Pattern PATTERN_HIDDENEVENT = Pattern.compile("Event\\s*Date\\s*:\\s*([^<]+)", Pattern.DOTALL); public final static Pattern PATTERN_FAVORITE = Pattern.compile("\"Remove"); public final static Pattern PATTERN_FAVORITECOUNT = Pattern.compile("]+>[^<]*\\D*([0-9]+?)"); public final static Pattern PATTERN_COUNTLOGS = Pattern.compile(""); /** Two groups ! */ public final static Pattern PATTERN_COUNTLOG = Pattern.compile("]+> (\\d*[,.]?\\d+)"); public static final Pattern PATTERN_MEMBERS = Pattern.compile("

This is a Premium Member Only cache.

"); public final static Pattern PATTERN_ATTRIBUTES = Pattern.compile("

[^<]*]+>\\W*Attributes[^<]*

[^<]*
((?:[^<]*\"[^\"]+\"[^]*>)+?)[^<]*\\s+((?:]+>]+>[^<]+
(?:[^<]+

)?)+)\\s+

"); public final static Pattern PATTERN_SPOILERSINSIDE = Pattern.compile("]+>]+>([^<]+)
(?:([^<]+)

)?"); public final static Pattern PATTERN_INVENTORY = Pattern.compile("\\W*Inventory[^<]*[^<]*[^<]*
([^<]*