import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(((?!25?[6-9]|0)[12]?\\d|2)?\\d\\.?\\b){4}$";
final String string = "30.168.1.255.1\n"
+ "127.1\n"
+ "192.168.1.256\n"
+ "-1.2.3.4\n"
+ "1.1.1.1.\n"
+ ".1.1.1.1\n"
+ "01.1.1.1\n"
+ "3...3\n"
+ "1212.1.1.1\n"
+ "2121.1.1.1\n"
+ "0.0.0.0\n"
+ "1.7.3.5\n"
+ "2.14.6.10\n"
+ "3.21.9.15\n"
+ "4.28.12.20\n"
+ "5.35.15.25\n"
+ "6.42.18.30\n"
+ "7.49.21.35\n"
+ "8.56.24.40\n"
+ "9.63.27.45\n"
+ "10.70.30.50\n"
+ "11.77.33.55\n"
+ "12.84.36.60\n"
+ "13.91.39.65\n"
+ "14.98.42.70\n"
+ "15.105.45.75\n"
+ "16.112.48.80\n"
+ "17.119.51.85\n"
+ "18.126.54.90\n"
+ "19.133.57.95\n"
+ "20.140.60.100\n"
+ "21.147.63.105\n"
+ "22.154.66.110\n"
+ "23.161.69.115\n"
+ "24.168.72.120\n"
+ "25.175.75.125\n"
+ "26.182.78.130\n"
+ "27.189.81.135\n"
+ "28.196.84.140\n"
+ "29.203.87.145\n"
+ "30.210.90.150\n"
+ "31.217.93.155\n"
+ "32.224.96.160\n"
+ "33.231.99.165\n"
+ "34.238.102.170\n"
+ "35.245.105.175\n"
+ "36.252.108.180\n"
+ "37.3.111.185\n"
+ "38.10.114.190\n"
+ "39.17.117.195\n"
+ "40.24.120.200\n"
+ "41.31.123.205\n"
+ "42.38.126.210\n"
+ "43.45.129.215\n"
+ "44.52.132.220\n"
+ "45.59.135.225\n"
+ "46.66.138.230\n"
+ "47.73.141.235\n"
+ "48.80.144.240\n"
+ "49.87.147.245\n"
+ "50.94.150.250\n"
+ "51.101.153.255\n"
+ "52.108.156.4\n"
+ "53.115.159.9\n"
+ "54.122.162.14\n"
+ "55.129.165.19\n"
+ "56.136.168.24\n"
+ "57.143.171.29\n"
+ "58.150.174.34\n"
+ "59.157.177.39\n"
+ "60.164.180.44\n"
+ "61.171.183.49\n"
+ "62.178.186.54\n"
+ "63.185.189.59\n"
+ "64.192.192.64\n"
+ "65.199.195.69\n"
+ "66.206.198.74\n"
+ "67.213.201.79\n"
+ "68.220.204.84\n"
+ "69.227.207.89\n"
+ "70.234.210.94\n"
+ "71.241.213.99\n"
+ "72.248.216.104\n"
+ "73.255.219.109\n"
+ "74.6.222.114\n"
+ "75.13.225.119\n"
+ "76.20.228.124\n"
+ "77.27.231.129\n"
+ "78.34.234.134\n"
+ "79.41.237.139\n"
+ "80.48.240.144\n"
+ "81.55.243.149\n"
+ "82.62.246.154\n"
+ "83.69.249.159\n"
+ "84.76.252.164\n"
+ "85.83.255.169\n"
+ "86.90.2.174\n"
+ "87.97.5.179\n"
+ "88.104.8.184\n"
+ "89.111.11.189\n"
+ "90.118.14.194\n"
+ "91.125.17.199\n"
+ "92.132.20.204\n"
+ "93.139.23.209\n"
+ "94.146.26.214\n"
+ "95.153.29.219\n"
+ "96.160.32.224\n"
+ "97.167.35.229\n"
+ "98.174.38.234\n"
+ "99.181.41.239\n"
+ "100.188.44.244\n"
+ "101.195.47.249\n"
+ "102.202.50.254\n"
+ "103.209.53.3\n"
+ "104.216.56.8\n"
+ "105.223.59.13\n"
+ "106.230.62.18\n"
+ "107.237.65.23\n"
+ "108.244.68.28\n"
+ "109.251.71.33\n"
+ "110.2.74.38\n"
+ "111.9.77.43\n"
+ "112.16.80.48\n"
+ "113.23.83.53\n"
+ "114.30.86.58\n"
+ "115.37.89.63\n"
+ "116.44.92.68\n"
+ "117.51.95.73\n"
+ "118.58.98.78\n"
+ "119.65.101.83\n"
+ "120.72.104.88\n"
+ "121.79.107.93\n"
+ "122.86.110.98\n"
+ "123.93.113.103\n"
+ "124.100.116.108\n"
+ "125.107.119.113\n"
+ "126.114.122.118\n"
+ "127.121.125.123\n"
+ "128.128.128.128\n"
+ "129.135.131.133\n"
+ "130.142.134.138\n"
+ "131.149.137.143\n"
+ "132.156.140.148\n"
+ "133.163.143.153\n"
+ "134.170.146.158\n"
+ "135.177.149.163\n"
+ "136.184.152.168\n"
+ "137.191.155.173\n"
+ "138.198.158.178\n"
+ "139.205.161.183\n"
+ "140.212.164.188\n"
+ "141.219.167.193\n"
+ "142.226.170.198\n"
+ "143.233.173.203\n"
+ "144.240.176.208\n"
+ "145.247.179.213\n"
+ "146.254.182.218\n"
+ "147.5.185.223\n"
+ "148.12.188.228\n"
+ "149.19.191.233\n"
+ "150.26.194.238\n"
+ "151.33.197.243\n"
+ "152.40.200.248\n"
+ "153.47.203.253\n"
+ "154.54.206.2\n"
+ "155.61.209.7\n"
+ "156.68.212.12\n"
+ "157.75.215.17\n"
+ "158.82.218.22\n"
+ "159.89.221.27\n"
+ "160.96.224.32\n"
+ "161.103.227.37\n"
+ "162.110.230.42\n"
+ "163.117.233.47\n"
+ "164.124.236.52\n"
+ "165.131.239.57\n"
+ "166.138.242.62\n"
+ "167.145.245.67\n"
+ "168.152.248.72\n"
+ "169.159.251.77\n"
+ "170.166.254.82\n"
+ "171.173.1.87\n"
+ "172.180.4.92\n"
+ "173.187.7.97\n"
+ "174.194.10.102\n"
+ "175.201.13.107\n"
+ "176.208.16.112\n"
+ "177.215.19.117\n"
+ "178.222.22.122\n"
+ "179.229.25.127\n"
+ "180.236.28.132\n"
+ "181.243.31.137\n"
+ "182.250.34.142\n"
+ "183.1.37.147\n"
+ "184.8.40.152\n"
+ "185.15.43.157\n"
+ "186.22.46.162\n"
+ "187.29.49.167\n"
+ "188.36.52.172\n"
+ "189.43.55.177\n"
+ "190.50.58.182\n"
+ "191.57.61.187\n"
+ "192.64.64.192\n"
+ "193.71.67.197\n"
+ "194.78.70.202\n"
+ "195.85.73.207\n"
+ "196.92.76.212\n"
+ "197.99.79.217\n"
+ "198.106.82.222\n"
+ "199.113.85.227\n"
+ "200.120.88.232\n"
+ "201.127.91.237\n"
+ "202.134.94.242\n"
+ "203.141.97.247\n"
+ "204.148.100.252\n"
+ "205.155.103.1\n"
+ "206.162.106.6\n"
+ "207.169.109.11\n"
+ "208.176.112.16\n"
+ "209.183.115.21\n"
+ "210.190.118.26\n"
+ "211.197.121.31\n"
+ "212.204.124.36\n"
+ "213.211.127.41\n"
+ "214.218.130.46\n"
+ "215.225.133.51\n"
+ "216.232.136.56\n"
+ "217.239.139.61\n"
+ "218.246.142.66\n"
+ "219.253.145.71\n"
+ "220.4.148.76\n"
+ "221.11.151.81\n"
+ "222.18.154.86\n"
+ "223.25.157.91\n"
+ "224.32.160.96\n"
+ "225.39.163.101\n"
+ "226.46.166.106\n"
+ "227.53.169.111\n"
+ "228.60.172.116\n"
+ "229.67.175.121\n"
+ "230.74.178.126\n"
+ "231.81.181.131\n"
+ "232.88.184.136\n"
+ "233.95.187.141\n"
+ "234.102.190.146\n"
+ "235.109.193.151\n"
+ "236.116.196.156\n"
+ "237.123.199.161\n"
+ "238.130.202.166\n"
+ "239.137.205.171\n"
+ "240.144.208.176\n"
+ "241.151.211.181\n"
+ "242.158.214.186\n"
+ "243.165.217.191\n"
+ "244.172.220.196\n"
+ "245.179.223.201\n"
+ "246.186.226.206\n"
+ "247.193.229.211\n"
+ "248.200.232.216\n"
+ "249.207.235.221\n"
+ "250.214.238.226\n"
+ "251.221.241.231\n"
+ "252.228.244.236\n"
+ "253.235.247.241\n"
+ "254.242.250.246\n"
+ "255.249.253.251\n"
+ "256.0.0.0\n"
+ "1.257.1.1\n"
+ "2.2.258.2\n"
+ "3.3.3.259\n"
+ "260.4.4.4\n"
+ "5.261.5.5\n"
+ "6.6.262.6\n"
+ "7.7.7.263\n"
+ "264.8.8.8\n"
+ "9.265.9.9\n"
+ "10.10.266.10\n"
+ "11.11.11.267\n"
+ "268.12.12.12\n"
+ "13.269.13.13\n"
+ "14.14.270.14\n"
+ "15.15.15.271\n"
+ "272.0.0.0\n"
+ "1.273.1.1\n"
+ "2.2.274.2\n"
+ "3.3.3.275\n"
+ "276.4.4.4\n"
+ "5.277.5.5\n"
+ "6.6.278.6\n"
+ "7.7.7.279\n"
+ "280.8.8.8\n"
+ "9.281.9.9\n"
+ "10.10.282.10\n"
+ "11.11.11.283\n"
+ "284.12.12.12\n"
+ "13.285.13.13\n"
+ "14.14.286.14\n"
+ "15.15.15.287\n"
+ "288.0.0.0\n"
+ "1.289.1.1\n"
+ "2.2.290.2\n"
+ "3.3.3.291\n"
+ "292.4.4.4\n"
+ "5.293.5.5\n"
+ "6.6.294.6\n"
+ "7.7.7.295\n"
+ "296.8.8.8\n"
+ "9.297.9.9\n"
+ "10.10.298.10\n"
+ "11.11.11.299\n"
+ "300.12.12.12\n"
+ "13.301.13.13\n"
+ "14.14.302.14\n"
+ "15.15.15.303\n"
+ "304.0.0.0\n"
+ "1.305.1.1\n"
+ "2.2.306.2\n"
+ "3.3.3.307\n"
+ "308.4.4.4\n"
+ "5.309.5.5\n"
+ "6.6.310.6\n"
+ "7.7.7.311\n"
+ "312.8.8.8\n"
+ "9.313.9.9\n"
+ "10.10.314.10\n"
+ "11.11.11.315\n"
+ "316.12.12.12\n"
+ "13.317.13.13\n"
+ "14.14.318.14\n"
+ "15.15.15.319";
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