import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?!(?!0* 0* 0*|0*+(?=(\\d*?)((?:(?=\\d+ 0*+(\\d*?)(\\d(?(4)\\4)) 0*(\\d*?)(\\d\\6?+)$)\\d)+) )(?=(?(?!\\1(?:(?=\\d+ 0*\\3((\\7?+)\\d))(?=\\d(\\d* 0*\\3\\8))(?=0\\9[9]|1\\9[8]|2\\9[7]|3\\9[6]|4\\9[5]|5\\9[4]|6\\9[3]|7\\9[2]|8\\9[1]|9\\9[0])\\d)*+(?=\\d(\\d* 0*\\3\\8?+))(?=[5-9]\\10[5-9]|1\\10[9]|2\\10[89]|3\\10[7-9]|4\\10[6-9]|6\\10[4]|7\\10[34]|8\\10[2-4]|9\\10[1-4]))(?=\\d+ \\d+ 0*\\1\\3\\6$)|(?(?!.*+\\3)\\d+ )(?=\\d*(\\2|\\4)( .*?0*+)\\d+$)(?(?=9*\\11 )(?:9(?=\\d*\\12[1](\\13?+0)))*(?=\\11 )\\11\\12[1]\\13?+\\6$|(?:(\\d)(?=\\d*\\12(\\15?+\\14)))*(?=\\d(\\d*\\12\\15?+))(?=0\\16[1]|1\\16[2]|2\\16[3]|3\\16[4]|4\\16[5]|5\\16[6]|6\\16[7]|7\\16[8]|8\\16[9])\\d(?:9(?=\\d*\\12\\15?+\\d(\\17?+0)))*?\\11\\s)))\\1(?:(?=(\\d)\\d* 0*+\\3((\\19?+)\\d)\\d* 0*+\\5((\\21?+)\\d))(?=\\d(\\d* 0*+\\3\\20)\\d(\\d* 0*+\\5\\22))(?(?!\\18(?:(?=\\d+ 0*+\\3\\19((\\25?+)\\d))(?=\\d(\\d* 0*+\\3\\19\\26))(?=0\\27[9]|1\\27[8]|2\\27[7]|3\\27[6]|4\\27[5]|5\\27[4]|6\\27[3]|7\\27[2]|8\\27[1]|9\\27[0])\\d)*+(?=\\d(\\d* 0*+\\3\\19\\26?+))(?=[5-9]\\28[5-9]|1\\28[9]|2\\28[89]|3\\28[7-9]|4\\28[6-9]|6\\28[4]|7\\28[34]|8\\28[2-4]|9\\28[1-4]))(?=1\\23(?:1\\24[2]|2\\24[3]|3\\24[4]|4\\24[5]|5\\24[6]|6\\24[7]|7\\24[8]|8\\24[9]|9\\24[0])|2\\23(?:1\\24[3]|2\\24[4]|3\\24[5]|4\\24[6]|5\\24[7]|6\\24[8]|7\\24[9]|8\\24[0]|9\\24[1])|3\\23(?:1\\24[4]|2\\24[5]|3\\24[6]|4\\24[7]|5\\24[8]|6\\24[9]|7\\24[0]|8\\24[1]|9\\24[2])|4\\23(?:1\\24[5]|2\\24[6]|3\\24[7]|4\\24[8]|5\\24[9]|6\\24[0]|7\\24[1]|8\\24[2]|9\\24[3])|5\\23(?:1\\24[6]|2\\24[7]|3\\24[8]|4\\24[9]|5\\24[0]|6\\24[1]|7\\24[2]|8\\24[3]|9\\24[4])|6\\23(?:1\\24[7]|2\\24[8]|3\\24[9]|4\\24[0]|5\\24[1]|6\\24[2]|7\\24[3]|8\\24[4]|9\\24[5])|7\\23(?:1\\24[8]|2\\24[9]|3\\24[0]|4\\24[1]|5\\24[2]|6\\24[3]|7\\24[4]|8\\24[5]|9\\24[6])|8\\23(?:1\\24[9]|2\\24[0]|3\\24[1]|4\\24[2]|5\\24[3]|6\\24[4]|7\\24[5]|8\\24[6]|9\\24[7])|9\\23(?:1\\24[0]|2\\24[1]|3\\24[2]|4\\24[3]|5\\24[4]|6\\24[5]|7\\24[6]|8\\24[7]|9\\24[8])|0\\23(\\d)\\24\\29|(\\d)\\23[0]\\24\\30)|(?=1\\23(?:0\\24[2]|1\\24[3]|2\\24[4]|3\\24[5]|4\\24[6]|5\\24[7]|6\\24[8]|7\\24[9]|8\\24[0]|9\\24[1])|2\\23(?:0\\24[3]|1\\24[4]|2\\24[5]|3\\24[6]|4\\24[7]|5\\24[8]|6\\24[9]|7\\24[0]|8\\24[1]|9\\24[2])|3\\23(?:0\\24[4]|1\\24[5]|2\\24[6]|3\\24[7]|4\\24[8]|5\\24[9]|6\\24[0]|7\\24[1]|8\\24[2]|9\\24[3])|4\\23(?:0\\24[5]|1\\24[6]|2\\24[7]|3\\24[8]|4\\24[9]|5\\24[0]|6\\24[1]|7\\24[2]|8\\24[3]|9\\24[4])|5\\23(?:0\\24[6]|1\\24[7]|2\\24[8]|3\\24[9]|4\\24[0]|5\\24[1]|6\\24[2]|7\\24[3]|8\\24[4]|9\\24[5])|6\\23(?:0\\24[7]|1\\24[8]|2\\24[9]|3\\24[0]|4\\24[1]|5\\24[2]|6\\24[3]|7\\24[4]|8\\24[5]|9\\24[6])|7\\23(?:0\\24[8]|1\\24[9]|2\\24[0]|3\\24[1]|4\\24[2]|5\\24[3]|6\\24[4]|7\\24[5]|8\\24[6]|9\\24[7])|8\\23(?:0\\24[9]|1\\24[0]|2\\24[1]|3\\24[2]|4\\24[3]|5\\24[4]|6\\24[5]|7\\24[6]|8\\24[7]|9\\24[8])|9\\23(?:0\\24[0]|1\\24[1]|2\\24[2]|3\\24[3]|4\\24[4]|5\\24[5]|6\\24[6]|7\\24[7]|8\\24[8]|9\\24[9])|0\\23(?:0\\24[1]|1\\24[2]|2\\24[3]|3\\24[4]|4\\24[5]|5\\24[6]|6\\24[7]|7\\24[8]|8\\24[9]|9\\24[0])))\\d)+\\s)).+";
final String string = "0 1 2\n"
+ "10 20 1000\n"
+ "10 20 30\n"
+ "28657 46368 75025\n"
+ "0 0 0\n\n"
+ "8235 49 8284\n"
+ "4 145 149\n"
+ "4705 485 5191\n"
+ "821 75 897\n"
+ "74 497 572\n"
+ "1917 27 1944\n"
+ "89124 3 89128\n"
+ "6858 8669 15527\n"
+ "84916 4 84921\n"
+ "935 63 999\n"
+ "1 9 11\n"
+ "7203 26154 33358\n"
+ "2 765 767\n"
+ "267 8031 8298\n"
+ "2062 188 2251\n"
+ "38 7869 7907\n"
+ "59 85041 85101\n"
+ "705 220 926\n"
+ "71982 2346 74328\n"
+ "9 1 11\n"
+ "3 8117 8120\n"
+ "720 208 928\n"
+ "4 83 88\n"
+ "109 21854 21964\n"
+ "35019 44355 79375\n"
+ "7 9 17\n"
+ "2126 752 2879\n"
+ "2268 53 2321\n"
+ "9 37717 37726\n"
+ "5 949 954";
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));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html