感谢here以上的回答。我一直在使用以下代码来验证URL。只是最近新的.anything
域有很多可能的选项。所以我认为,推特将其视为URL(发布推文时),我将使用相同的......来遵循标准,所以说!
我想知道twitter如何验证URL,是否有任何我可以使用的库正在使用哪个库。请帮我解决这个常见问题。万分感谢!
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;
}
答案 0 :(得分:1)
Twitter公开twitter-text
库,它有很多文本处理选项。以下是相关的回购https://github.com/twitter/twitter-text/tree/master/java。如果您想在客户端执行此操作,可以使用https://github.com/twitter/twitter-text
答案 1 :(得分:1)
如上所述,您可以使用Twitter文本库。如果您要验证网址,可以使用官方TLD列表 - http://data.iana.org/TLD/tlds-alpha-by-domain.txt