using System;
using System.Text .RegularExpressions ;
public class Test
{
public static void Main( )
{
var text = "Look at http://google.com some more text here possibly,\n Look at www.google.com some more text here possibly" ;
text = text.Trim ( ) ;
text = Regex.Replace ( text,
@"((https?|ftp)://(?:www\.|(?!www))[^\s.]+\.\S{2,}|www\.\S+\.\S{2,})" , m =>
m.Groups [ 2 ] .Success ?
string.Format ( "<a target='_blank' href='{0}'>{0}</a>" , m.Groups [ 1 ] .Value ) :
string.Format ( "<a target='_blank' href='http://{0}'>{0}</a>" , m.Groups [ 1 ] .Value ) ) ;
Console.WriteLine ( text) ;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgdGV4dCA9ICJMb29rIGF0IGh0dHA6Ly9nb29nbGUuY29tIHNvbWUgbW9yZSB0ZXh0IGhlcmUgcG9zc2libHksXG5Mb29rIGF0IHd3dy5nb29nbGUuY29tIHNvbWUgbW9yZSB0ZXh0IGhlcmUgcG9zc2libHkiOwoJCXRleHQgPSB0ZXh0LlRyaW0oKTsKCQl0ZXh0ID0gUmVnZXguUmVwbGFjZSh0ZXh0LAogICAgICAgIEAiKChodHRwcz98ZnRwKTovLyg/Ond3d1wufCg/IXd3dykpW15ccy5dK1wuXFN7Mix9fHd3d1wuXFMrXC5cU3syLH0pIiwgbSA9PiAKICAgICAgICBtLkdyb3Vwc1syXS5TdWNjZXNzID8gCiAgICAgICAgICAgc3RyaW5nLkZvcm1hdCgiPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J3swfSc+ezB9PC9hPiIsIG0uR3JvdXBzWzFdLlZhbHVlKSA6CiAgICAgICAgICAgc3RyaW5nLkZvcm1hdCgiPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J2h0dHA6Ly97MH0nPnswfTwvYT4iLCBtLkdyb3Vwc1sxXS5WYWx1ZSkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHRleHQpOwoJfQp9