首页 > 解决方案 > 如何从字符串中获取 ipAddresses 列表?

问题描述

我有一个包含多个 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 项。

我怎样才能通过正则表达式来做到这一点?

提前致谢。

标签: javaregexalgorithm

解决方案


    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));
    }

推荐阅读