0

感谢这里的答案。我一直在使用以下代码来验证 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;
}
4

2 回答 2

1

Twitter 公开twitter-text了具有大量文本处理选项的库。这是相关的回购https://github.com/twitter/twitter-text/tree/master/java。如果您想在客户端执行此操作,可以使用https://github.com/twitter/twitter-text中的代码

于 2015-03-27T08:21:31.697 回答
1

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

于 2015-03-27T13:25:27.420 回答