如何从句子中获取网站URL?

时间:2011-09-22 07:35:42

标签: c# .net windows

我需要使用C#.Net Windows Form的TextBox识别句子中的URL(链接)。

例如:That is http://stackoverflow.com link.

该句子在文本框中。

我需要从这句话中提取http://stackoverflow.com

我该怎么做?

谢谢你的时间。

4 个答案:

答案 0 :(得分:3)

查找超链接正则表达式 - 您可以将您在Regex对象中找到的内容插入其中,它将为您捕获该网址。

答案 1 :(得分:1)

string str = "That is my url expression http://stackoverflow.com ";    
string pattern = @"((https?|http):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)";    
string[] arr = Regex.Split(str, pattern); Console.WriteLine(arr[1]);

答案 2 :(得分:0)

您可以使用LinkLabel控件。向Text属性提供文本,然后在权利LinkArea中定义仅应链接的位置。唯一的事情是每个完整LinkLabel文本只允许一个链接。

enter image description here

答案 3 :(得分:0)

尝试:

detail = Core.URL.Replace(detail, 
      delegate(Match match)
      {
          // match.ToString() will contain http://stackoverflow.com in your case :)
          return string.Format("<a target=\"_blank\" href=\"{0}\">{0}</a>", match.ToString());
      });

Core.URL.Replace定义为:

public static Regex URL = new Regex(@"(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])", RegexOptions.Compiled);

此代码最初来自:

http://weblogs.asp.net/farazshahkhan/archive/2008/08/09/regex-to-find-url-within-text-and-make-them-as-link.aspx#7224581