import java.util.regex.*;
class Main {
parseInformation("1y30d");
parseInformation("1y2m30mi");
parseInformation("1y1mi");
parseInformation("1y2m3d4h5mi6s");
}
public static void parseInformation
(String information
) { Pattern p = Pattern.compile("(?:(\\d+)y)?(?:(\\d+)m(?!i))?(?:(\\d+)d)?(?:(\\d+)h)?(?:(\\d+)mi)?(?:(\\d+)s)?");
Matcher m = p.matcher(information);
while (m.find()) {
if (m.group().isEmpty()) { continue; /* found nothing, go on */ }
System.
out.
println(information
+ " found: '"+m.
group()+"'"); System.
out.
println("\t" + m.
group(1) + " years"); System.
out.
println("\t" + m.
group(2) + " months"); System.
out.
println("\t" + m.
group(3) + " days"); System.
out.
println("\t" + m.
group(4) + " hours"); System.
out.
println("\t" + m.
group(5) + " minutes"); System.
out.
println("\t" + m.
group(6) + " seconds"); }
}
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC4qOwoKY2xhc3MgTWFpbiB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbiB7CgkJcGFyc2VJbmZvcm1hdGlvbigiMXkzMGQiKTsKCQlwYXJzZUluZm9ybWF0aW9uKCIxeTJtMzBtaSIpOwoJCXBhcnNlSW5mb3JtYXRpb24oIjF5MW1pIik7CgkJcGFyc2VJbmZvcm1hdGlvbigiMXkybTNkNGg1bWk2cyIpOwoJfQoKCXB1YmxpYyBzdGF0aWMgdm9pZCBwYXJzZUluZm9ybWF0aW9uKFN0cmluZyBpbmZvcm1hdGlvbikgewoJCVBhdHRlcm4gcCA9IFBhdHRlcm4uY29tcGlsZSgiKD86KFxcZCspeSk/KD86KFxcZCspbSg/IWkpKT8oPzooXFxkKylkKT8oPzooXFxkKyloKT8oPzooXFxkKyltaSk/KD86KFxcZCspcyk/Iik7CgkJTWF0Y2hlciBtID0gcC5tYXRjaGVyKGluZm9ybWF0aW9uKTsKCQl3aGlsZSAobS5maW5kKCkpIHsKCQkJaWYgKG0uZ3JvdXAoKS5pc0VtcHR5KCkpIHsgY29udGludWU7IC8qIGZvdW5kIG5vdGhpbmcsIGdvIG9uICovIH0KCQkJU3lzdGVtLm91dC5wcmludGxuKGluZm9ybWF0aW9uICsgIiBmb3VuZDogJyIrbS5ncm91cCgpKyInIik7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgbS5ncm91cCgxKSArICIgeWVhcnMiKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJcdCIgKyBtLmdyb3VwKDIpICsgIiBtb250aHMiKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJcdCIgKyBtLmdyb3VwKDMpICsgIiBkYXlzIik7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgbS5ncm91cCg0KSArICIgaG91cnMiKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJcdCIgKyBtLmdyb3VwKDUpICsgIiBtaW51dGVzIik7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgbS5ncm91cCg2KSArICIgc2Vjb25kcyIpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIiIpOwoJCX0KCX0KfQ==