2010-12-16 12 views
0

電子メールメッセージをロードしています。クリックスルーを追跡するために、HREF = "%%トラック"をすべてHREF = "%%トラックhttp://someurl%%"に置き換えます。C#を使用して文字列内のURLを検索および置換する

メールソフトウェアは、トラッキングコードを検出してクリックスルーをクリックすることができますトラッキングコードが表示され、URLをトラッキングできるものに置き換えます)。 urlには任意の有効なURLを使用できます。

誰もこのタイプの検索と置換を行うコードの例はありますか?

おかげ

答えて

0

従来の知恵は、あなたが正規表現で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); 
関連する問題