import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\/([0-9]+))|((([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/([0-9]+))";
final String string = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
+ "<reg:registerSocResources updateTime=\"2023-08-23T17:00:00+03:00\" formatVersion=\"1.0\" xmlns:reg=\"http://rkn.gov.ru/register/socResources\" xmlns:tns=\"http://rkn.gov.ru/register/socResources\">\n"
+ " <content id=\"1\" hash=\"c74d571742a6c706828b803d5190e566\" includeTime=\"2022-01-26T22:00:00+03:00\">\n"
+ " <resourceName><![CDATA[Единый портал государственных и муниципальных услуг (Госуслуги)]]></resourceName>\n"
+ " <domain><![CDATA[gosuslugi.ru]]></domain>\n"
+ " <ipSubnet>37.220.160.0/21</ipSubnet>\n"
+ " <ipSubnet>46.235.184.0/21</ipSubnet>\n"
+ " <ipSubnet>93.93.88.0/21</ipSubnet>\n"
+ " <ipSubnet>78.41.104.0/21</ipSubnet>\n"
+ " <ipSubnet>185.17.168.0/22</ipSubnet>\n"
+ " <ipSubnet>212.193.144.0/20</ipSubnet>\n"
+ " <ipSubnet>195.208.30.60/30</ipSubnet>\n"
+ " <ipSubnet>195.209.64.0/21</ipSubnet>\n"
+ " <ipSubnet>195.209.80.0/20</ipSubnet>\n"
+ " <ipSubnet>195.208.64.0/20</ipSubnet>\n"
+ " <ipSubnet>195.209.75.0/25</ipSubnet>\n"
+ " <ipSubnet>185.38.204.18/32</ipSubnet>\n"
+ " <ipSubnet>109.207.0.0/20</ipSubnet>\n"
+ " <ipSubnet>213.59.192.0/18</ipSubnet>\n"
+ " </content>\n"
+ " <content id=\"2\" hash=\"45fcc3ee99b66673c1de92809d7ea403\" includeTime=\"2022-01-26T22:00:00+03:00\">\n"
+ " <resourceName><![CDATA[Социальная сеть \"ВКонтакте\"]]></resourceName>\n"
+ " <domain><![CDATA[vk.com]]></domain>\n"
+ " <ipSubnet>5.181.61.0/24</ipSubnet>\n"
+ " <ipSubnet>79.137.139.0/24</ipSubnet>\n"
+ " <ipSubnet>79.137.164.0/24</ipSubnet>\n"
+ " <ipSubnet>79.137.180.0/24</ipSubnet>\n"
+ " <ipSubnet>79.137.183.0/24</ipSubnet>\n"
+ " <ipSubnet>87.240.128.0/18</ipSubnet>\n"
+ " <ipSubnet>93.186.224.0/20</ipSubnet>\n"
+ " <ipSubnet>95.142.192.0/20</ipSubnet>\n"
+ " <ipSubnet>95.213.0.0/17</ipSubnet>\n"
+ " <ipSubnet>185.32.248.0/22</ipSubnet>\n"
+ " <ipSubnet>185.226.52.0/22</ipSubnet>\n"
+ " <ipSubnet>45.136.20.0/22</ipSubnet>\n"
+ " <ipSubnet>95.163.39.80/29</ipSubnet>\n"
+ " <ipSubnet>193.203.40.0/22</ipSubnet>\n"
+ " <ipSubnet>5.61.20.180/31</ipSubnet>\n"
+ " <ipSubnet>5.61.20.196/30</ipSubnet>\n"
+ " <ipSubnet>5.61.20.248/29</ipSubnet>\n"
+ " <ipSubnet>5.61.23.186/31</ipSubnet>\n"
+ " <ipSubnet>5.61.23.228/31</ipSubnet>\n"
+ " <ipSubnet>5.61.23.248/30</ipSubnet>\n"
+ " <ipSubnet>185.16.247.226/31</ipSubnet>\n"
+ " <ipSubnet>185.100.104.4/30</ipSubnet>\n"
+ " <ipSubnet>185.100.104.44/30</ipSubnet>\n"
+ " <ipSubnet>185.100.104.48/29</ipSubnet>\n"
+ " <ipSubnet>185.100.104.132/30</ipSubnet>\n"
+ " <ipSubnet>185.100.105.24/29</ipSubnet>\n"
+ " <ipSubnet>185.100.105.64/30</ipSubnet>\n"
+ " <ipSubnet>185.100.105.132/30</ipSubnet>\n"
+ " <ipSubnet>185.100.105.192/29</ipSubnet>\n"
+ " <ipSubnet>185.100.105.200/30</ipSubnet>\n"
+ " <ipSubnet>217.20.158.34/31</ipSubnet>\n"
+ " <ipSubnet>5.101.40.2/32</ipSubnet>\n"
+ " <ipSubnet>217.20.152.213/32</ipSubnet>\n"
+ " <ipSubnet>217.20.156.158/32</ipSubnet>\n"
+ " <ipSubnet>217.20.156.18/32</ipSubnet>\n"
+ " <ipSubnet>217.20.155.24/32</ipSubnet>\n"
+ " <ipSubnet>217.20.147.23/32</ipSubnet>\n"
+ " <ipSubnet>95.163.56.192/27</ipSubnet>\n"
+ " <ipSubnet>95.163.41.200/30</ipSubnet>\n"
+ " <ipSubnet>5.61.16.0/21</ipSubnet>\n"
+ " <ipSubnet>185.16.148.0/22</ipSubnet>\n"
+ " <ipSubnet>185.16.244.0/22</ipSubnet>\n"
+ " <ipSubnet>217.20.144.0/20</ipSubnet>\n"
+ " <ipSubnet>87.240.160.0/26</ipSubnet>\n"
+ " <ipSubnet>95.142.201.192/27</ipSubnet>\n"
+ " <ipSubnet>95.142.202.0/27</ipSubnet>\n"
+ " <ipSubnet>95.142.203.192/27</ipSubnet>\n"
+ " <ipSubnet>95.142.206.192/27</ipSubnet>\n"
+ " <ipSubnet>185.32.249.192/27</ipSubnet>\n"
+ " <ipSubnet>185.32.250.192/27</ipSubnet>\n"
+ " <ipSubnet>185.32.251.192/27</ipSubnet>\n"
+ " <ipSubnet>185.100.104.0/22</ipSubnet>\n"
+ " </content>\n"
+ " <ipv6Subnet>2001:0db8:11a3:09d7::/64</ipv6Subnet>";
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