Найдите URL в виде обычного текста и вставьте HTML-разметки - PullRequest
2 голосов
/ 07 марта 2011

У меня есть текст с URL, и мне нужно обернуть его разметкой HTML A, как это сделать в c #?

Пример, у меня есть

My text and url http://www.google.com The end.

Я бы хотел получить

My text and url <a href="http://www.google.com">http://www.google.com</a> The end.

1 Ответ

12 голосов
/ 07 марта 2011

Вы можете использовать регулярное выражение для этого.Если вам нужен лучший Regex, вы можете найти его здесь http://regexlib.com/Search.aspx?k=url

Мое быстрое решение для этого будет следующим:

string mystring = "My text and url http://www.google.com The end.";

Regex urlRx = new Regex(@"(?<url>(http:[/][/]|www.)([a-z]|[A-Z]|[0-9]|[/.]|[~])*)", RegexOptions.IgnoreCase);

MatchCollection matches = urlRx.Matches(mystring);

foreach (Match match in matches)
{
    var url = match.Groups["url"].Value;
    mystring = mystring.Replace(url, string.Format("<a href=\"{0}\">{0}</a>", url));
}
...