//'main' method must be in a class 'Rextester'.
//Compiler version 1.8.0_111
import java.util.*;
import java.lang.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Rextester
{
public static void main
(String args
[]) {
final String regex
= "^(?:(0[1-9]|[1-9][0-9])0{6}|(0[1-9]|[1-9][0-9]){2}0{4}|((?:0[1-9]|[1-9][0-9])){3}00|(?:0[1-9]|[1-9][0-9]){4})$"; final String string
= "00000000\n" + "01000000\n"
+ "10000000\n"
+ "10440044\n"
+ "99990000\n"
+ "99999900\n"
+ "99000099\n"
+ "77007788\n"
+ "55555555";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.
out.
println("Full match: " + matcher.
group(0)); if (null != matcher.group(1)) {
System.
out.
println("Level 1"); } else if (null != matcher.group(2)) {
System.
out.
println("Level 2"); } else if (null != matcher.group(3)) {
System.
out.
println("Level 3"); } else {
System.
out.
println("Level 4"); }
}
}
}
Ly8nbWFpbicgbWV0aG9kIG11c3QgYmUgaW4gYSBjbGFzcyAnUmV4dGVzdGVyJy4KLy9Db21waWxlciB2ZXJzaW9uIDEuOC4wXzExMQoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKY2xhc3MgUmV4dGVzdGVyCnsgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkKICAgIHsKICAgICAgICBmaW5hbCBTdHJpbmcgcmVnZXggPSAiXig/OigwWzEtOV18WzEtOV1bMC05XSkwezZ9fCgwWzEtOV18WzEtOV1bMC05XSl7Mn0wezR9fCgoPzowWzEtOV18WzEtOV1bMC05XSkpezN9MDB8KD86MFsxLTldfFsxLTldWzAtOV0pezR9KSQiOwogICAgICAgIGZpbmFsIFN0cmluZyBzdHJpbmcgPSAiMDAwMDAwMDBcbiIKICAgICAgICAgICAgICsgIjAxMDAwMDAwXG4iCiAgICAgICAgICAgICArICIxMDAwMDAwMFxuIgogICAgICAgICAgICAgKyAiMTA0NDAwNDRcbiIKICAgICAgICAgICAgICsgIjk5OTkwMDAwXG4iCiAgICAgICAgICAgICArICI5OTk5OTkwMFxuIgogICAgICAgICAgICAgKyAiOTkwMDAwOTlcbiIKICAgICAgICAgICAgICsgIjc3MDA3Nzg4XG4iCiAgICAgICAgICAgICArICI1NTU1NTU1NSI7CgogICAgICAgIGZpbmFsIFBhdHRlcm4gcGF0dGVybiA9IFBhdHRlcm4uY29tcGlsZShyZWdleCwgUGF0dGVybi5NVUxUSUxJTkUpOwogICAgICAgIGZpbmFsIE1hdGNoZXIgbWF0Y2hlciA9IHBhdHRlcm4ubWF0Y2hlcihzdHJpbmcpOwoKICAgICAgICB3aGlsZSAobWF0Y2hlci5maW5kKCkpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGdWxsIG1hdGNoOiAiICsgbWF0Y2hlci5ncm91cCgwKSk7CiAgICAgICAgICAgICAgICBpZiAobnVsbCAhPSBtYXRjaGVyLmdyb3VwKDEpKSB7CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJMZXZlbCAxIik7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bGwgIT0gbWF0Y2hlci5ncm91cCgyKSkgewogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGV2ZWwgMiIpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudWxsICE9IG1hdGNoZXIuZ3JvdXAoMykpIHsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkxldmVsIDMiKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJMZXZlbCA0Iik7CiAgICAgICAgICAgICAgICB9ICAgCiAgICAgICAgfQogICAgfQp9