我正在使用以下正则表达式来查找文本中是否存在网址,但似乎错过了一些网址:
youtube.be/8P0BxJO
youtube.com/watch?v=VrmlFL
还有一些bit.ly链接(但不是全部)
Match m = Regex.Match(nc[i].InnerText,
@"(http(s)?://)?([\w-]+\.)+[\w-]+(/\S\w[\w- ;,./?%&=]\S*)?");
if (m.Success)
{
MessageBox.Show(nc[i].InnerText);
}
任何想法如何解决?
答案 0 :(得分:0)
请参阅this相关问题,第一个答案可以帮助您解决问题。建议都找到链接然后替换它们,所以显然只需要你需要的东西。 This和this文章是不同的方法,可以为您带来或多或少相同的结果。
另一种(也许更可靠)非正则表达式方法是通过拆分空格和标点符号来标记字符串,然后检查标记以查看它们是否是使用Uri.IsWellFormedUriString的有效uri(仅适用于形成良好的uri,正如this质疑指出的那样。)