I need to replace all urls in the text IF they are not put into '...' HTML tags yet.
The unconditional way to replace is described here: Recognize URL in plain text.
Here is my implementation of it:
    private static readonly Regex UrlMatcherRegex = new Regex(@"\b(?:(?:https?|ftp|file)://|www\.|ftp\.)(?:\([-A-Z0-9+&@#/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#/%=~_|$?!:,.]*\)|[A-Z0-9+&@#/%=~_|$])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
    public static string GetProcessedMessage(this INews news)
    {
        string res = UrlMatcherRegex.Replace(news.Mess, ReplaceHrefByAnchor);
        return res;
    }
    private static string ReplaceHrefByAnchor(Match match)
    {
        string href = match.Groups[0].Value;
        return string.Format("<a href=\"{0}\" target=\"_blank\">{0}</a>", href);
    }
But how can I ignore those URLs which are already formatted properly?
Please advise.
P.S. I'm using ASP.NET 4.5
P.P.S. I could imagine that one of the solutions could be enhance regex to check for "
 
     
    