使用C#在字符串中搜索和替换URL

时间:2010-12-16 17:45:59

标签: c# regex email url

我正在加载电子邮件。为了跟踪点击次数,我用HREF =“%% track http://someurl%%”替换所有出现的HREF =“http:// someurl”

我们的电子邮件软件随后可以检测跟踪代码并跟踪点击点击次数(它会看到跟踪代码并将网址替换为可以跟踪的内容)。网址可以是任何有效的网址。

有没有人有一个代码示例来执行此类搜索和替换?

感谢

1 个答案:

答案 0 :(得分: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);