Twitter 如何验证 URL

How does twitter validate a URL

感谢 here 的回答。我一直在使用以下代码来验证 URL。只是最近新的 .anything 域有很多可能的选择。所以我想,推特将其视为 URL(在发布推文时),我将使用相同的...来遵循标准,可以这么说!

我想知道 twitter 如何验证 URL,是否有我可以使用的库,而 twitter 正在使用。请帮我解决这个常见问题。非常感谢!

public static List<String> extractUrls(String input) {
    List<String> result = new ArrayList<String>();

    Pattern pattern = Pattern.compile(
        "(\s)+\b(((ht|f)tp(s?)\:\/\/|~\/|\/)|(www.)?)" + 
        "(\w+:\w+)?(([-\w]+\.)+(com|org|net|gov" + 
        "|mil|biz|info|mobi|name|aero|jobs|museum|club" + 
        "|travel|[a-z]{2}))(:[\d]{1,5})?" + 
        "(((\/([-\w~!$+|.,=]|%[a-f\d]{2})+)+|\/)+|\?|#)?" + 
        "((\?([-\w~!$+|.,*:]|%[a-f\d{2}])+=?" + 
        "([-\w~!$+|.,*:=]|%[a-f\d]{2})*)" + 
        "(&(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?" + 
        "([-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*" + 
        "(#([-\w~!$+|.,*:=]|%[a-f\d]{2})*)?\b");

    Matcher matcher = pattern.matcher(input);
    while (matcher.find()) {
        result.add(matcher.group());
    }

    return result;
}

Twitter 公开了 twitter-text 库,其中有很多文本处理选项。这是相关的回购 https://github.com/twitter/twitter-text/tree/master/java. If you want to do this on client side, you can use code from https://github.com/twitter/twitter-text

如前所述,您可以使用 Twitter 文本库。如果要验证 URL,可以使用 TLD 的官方列表 - http://data.iana.org/TLD/tlds-alpha-by-domain.txt