Мне нужно идентифицировать URL-адреса (ссылки) в предложении, используя текстовое поле C # .Net Windows Form.
например: That is <a href="http://stackoverflow.com">http://stackoverflow.com</a> link.
That is <a href="http://stackoverflow.com">http://stackoverflow.com</a> link.
это предложение в текстовом поле.
Мне нужно извлечь http://stackoverflow.com из этого предложения.
http://stackoverflow.com
Как я могу это сделать?
Спасибо, что уделили время.
Посмотрите регулярное выражение гиперссылки - вы можете подключить то, что вы найдете в Regex объекте, и оно будет захватывать URL для вас.
Regex
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]);
Попробуйте:
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, определенным как:
Core.URL.Replace
public static Regex URL = new Regex(@"(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])", RegexOptions.Compiled);
Этот код был изначально получен:
http://weblogs.asp.net/farazshahkhan/archive/2008/08/09/regex-to-find-url-within-text-and-make-them-as-link.aspx#7224581
Вы можете использовать LinkLabel control.Укажите текст для атрибута Text, а затем в свойстве LinkArea укажите, где должна быть только ссылка.Единственное, что допускается только одна ссылка на полный текст LinkLabel.
LinkLabel
Text
LinkArea