java - Twitter 如何验证 URL

标签 java regex twitter url-validation

感谢 here 的回答。我一直在使用以下代码来验证 URL。只是最近新的 .anything 域名有很多可能的选择。所以我想,无论 Twitter 将哪个视为 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 文本库。如果您想验证 URL,可以使用 TLD 的官方列表 - http://data.iana.org/TLD/tlds-alpha-by-domain.txt

关于java - Twitter 如何验证 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29295590/

相关文章:

sql - 限制通配符捕获长度postgreSQL

javascript - Twitter API 1.1 从 PHP 获取 json 以在 Javascript 中使用

使用操作按钮快速打开 Twitter 配置文件

java - 如何处理 InterruptedException

java - 使用GsonBuilder和InputStream Android仅解析整个消息java的一个分支的JSON

java - 在 Java 中,将 longs 映射到对象的最高效(时间、内存)方式是什么?

自减/自增运算符的Java表达式解释规则

java - git 分支的有效 java 正则表达式模式是什么?

javascript - 如何排除用标点符号分隔的整个句子?

css - 自定义 Twitter 和 FB 分享按钮图像