import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\b((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)+(?:\\/{1}((?:[0-9])|(?:[1-2][0-9])|(?:3[0-2]))\\b)?)|((?:[a-f0-9:]+:+)+(?:[a-f0-9])+(?:\\/{1}((?:(?:3[0-2]|[12]?\\d)))\\b)?)";
final String string = " 192.168.1.1 192.168.2.1\n"
+ " 192.168.3.1\n"
+ " \"192.168.10.1\", \"192.168.10.257\" 10.0.0.1, 8.8.8.8\n\n"
+ " not_an_ip \"192.168.0.1 10.9.9.0\n"
+ " random text here\n"
+ " 127.0.0.1\n"
+ " 192.168.23.12\n\n"
+ " 2001:db8::\n"
+ " ::1234:5678\n"
+ " 2001:db8::1234:5678\n\n"
+ " 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468\n"
+ " \n"
+ " 192.168.3.1/32\n"
+ " 10.0.0.0/0\n"
+ " 12.10.0.0/24\n"
+ " 10.0.0.0/24\n"
+ " 10.0.0.0/99\n"
+ " 1.1.1.25/23\n"
+ " 0.0.0.0/3\n\n"
+ " 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/0\n"
+ " 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/9\n"
+ " 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/10\n"
+ " 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/15\n"
+ " 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/22\n"
+ " 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/32\n"
+ " 54a9:1437:0fbd:e763:8a47:fccd:b09b:e468/41\n";
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