1

我正在使用以下正则表达式来查找文本中是否存在 url,但它似乎错过了一些 URL,例如:

  • 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);
}

任何想法如何解决它?

4

1 回答 1

0

看到这个相关的问题,第一个答案应该可以帮助你。该建议既找到链接,然后替换它们,所以显然只需要你需要的。 这篇文章和这篇文章是不同的方法,应该能得到或多或少相同的结果。

另一种(可能更可靠)非正则表达式方法是通过分割空格和标点符号来标记字符串,然后使用Uri.IsWellFormedUriString检查标记以查看它们是否是有效的 uri (它仅适用于格式良好的 uri,如这个问题指出)。

于 2012-07-23T02:22:34.827 回答