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