Поиск и замена URL в строке с помощью C # - PullRequest
0 голосов
/ 16 декабря 2010

Я загружаю сообщения электронной почты.Чтобы отслеживать переходы по кликам, я заменил все вхождения HREF = "http://someurl" на HREF =" %% track http://someurl%%"

Наше программное обеспечение электронной почты может затем определить код отслеживания и отслеживать клики по кликам (он видит код отслеживания и заменяет URL-адрес на то, что он может отслеживать).URL может быть любым действительным URL.

У кого-нибудь есть пример кода для этого типа поиска и замены?

спасибо

1 Ответ

0 голосов
/ 16 декабря 2010

Общепринято, что не следует разбирать HTML с помощью регулярного выражения.Однако этот случай может быть достаточно простым для регулярных выражений, особенно если вы контролируете полученный HTML-код и можете гарантировать, что атрибут href всегда будет иметь одинаковый формат.

private static readonly Regex hrefRegex =
    new Regex("(?<=href=\")http://[^\"]*(?=\")", RegexOptions.IgnoreCase);

public static string InsertTrackingCode(string html)
{
    return hrefRegex.Replace(html,
        match => "%%track " + match.Groups[0].Value + "%%");
}

Затем просто выполните:

string htmlWithTracking = InsertTrackingCode(htmlWithoutTracking);
...