16 Şubat 2011 Çarşamba

Converting URLs Into Links With Regex


public static string WithActiveLinks(this string s)
{
  //Finds URLs with no protocol
  var urlregex = 
new Regex(@"\b\({0,1}(?<url>(www|ftp)\.[^ ,""\s<)]*)\b", 
    RegexOptions.IgnoreCase | RegexOptions.Compiled);
  //Finds URLs with a protocol
  var httpurlregex = 
new Regex(@"\b\({0,1}(?<url>[^>]
(http://www\.|http://|https://|ftp://)[^,""\s<)]*)\b", 
    RegexOptions.IgnoreCase | RegexOptions.Compiled);
  //Finds email addresses
  var emailregex = 
new Regex(@"\b(?<mail>[a-zA-Z_0-9.-]+\@[a-zA-Z_0-9.-]+\.\w+)\b", 
    RegexOptions.IgnoreCase | RegexOptions.Compiled);
  s = urlregex.Replace
(s, " <a href=\"http://${url}\" target=\"_blank\">${url}</a>");
  s = httpurlregex.Replace
(s, " <a href=\"${url}\" target=\"_blank\">${url}</a>");
  s = emailregex.Replace
  (s, "<a href=\"mailto:${mail}\">${mail}</a>");
  return s;
}

Hiç yorum yok:

Yorum Gönder