0

ここのこの回答に感謝します。次のコードを使用して 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;
}
4

2 に答える 2

1

Twittertwitter-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 に答える