URL正则表达式 - 没有让它工作

时间:2012-05-17 13:53:27

标签: c# .net regex

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

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

任何想法如何解决?

1 个答案:

答案 0 :(得分:0)

请参阅this相关问题,第一个答案可以帮助您解决问题。建议都找到链接然后替换它们,所以显然只需要你需要的东西。 Thisthis文章是不同的方法,可以为您带来或多或少相同的结果。

另一种(也许更可靠)非正则表达式方法是通过拆分空格和标点符号来标记字符串,然后检查标记以查看它们是否是使用Uri.IsWellFormedUriString的有效uri(仅适用于形成良好的uri,正如this质疑指出的那样。)