有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从字符串中获取IP地址列表?

我有一个包含多个IP地址的大字符串

String str1 = "10.0.0.2 - frank [10/Oct/2000:13:55:36" + " -0700] \"GET /apache_pb.gif HTTP/1.0\" 200 2326 "
                + "\"104.244.253.29\" \"Mozilla/4.08 " + "[en] (Win98; I ;104.30.244.2)\"";

我使用split将字符串转换成字符串数组,然后检查单词中有3.的每个单词。但dint被发现是一个万无一失的解决方案

我想使用正则表达式并获得List<String>ipAddresses返回

public List<String> findIPs(String str) {
 //implement it via regex
}

在这里,我希望在方法将返回的字符串列表中有3项

我怎么能通过正则表达式来实现呢

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

        String str1 = "10.0.0.2 - frank [10/Oct/2000:13:55:36" + " -0700] \"GET /apache_pb.gif HTTP/1.0\" 200 2326 "
                      + "\"104.244.253.29\" \"Mozilla/4.08 " + "[en] (Win98; I ;104.30.244.2)\"";
        Pattern p = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
        Matcher m = p.matcher(str1);
        while (m.find()){
            System.out.println(m.group(0));
        }