使用正则表达式替换 HREF

发布于 2024-09-08 05:45:12 字数 295 浏览 6 评论 0原文

我有 html 电子邮件,我想跟踪点击活动。我需要更新电子邮件中的所有 href,以指向我的服务器,可以在其中记录和重定向它们。有没有一种简单的方法可以使用 .Net 正则表达式在全球范围内执行此操作?

<a href="http://abc.com">ABC</a>

变成

<a href="http://mydomain.com?uid=123&url=http:/abc.com>ABC</a>

I have html email that I would like to track click activity. I need to update all hrefs within the email to point back to my server where they can be logged and redirected. Is there an easy way to do this globally using .Net regex?

<a href="http://abc.com">ABC</a>

becomes

<a href="http://mydomain.com?uid=123&url=http:/abc.com>ABC</a>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尘世孤行 2024-09-15 05:45:12

不要使用 RegEx 来解析 HTML - 它不是常规语言。请参阅此处了解一些引人注目的演示。

使用 HTML Agility Pack 解析 HTML 并替换 URL。

Do not use a RegEx to parse HTML - it is not a regular language. See here for some compelling demonstrations.

Use the HTML Agility Pack to parse the HTML and replace the URLs.

朦胧时间 2024-09-15 05:45:12

尝试下面的代码

public string ReplaceLinks(string emailSource) {
    string resultString = null;
    try {
        resultString = Regex.Replace(emailSource, "(<a href=\")(htt)", new MatchEvaluator(ComputeReplacement));
    } catch (ArgumentException ex) {
        // Syntax error in the regular expression
    }
    return resultString;
}

public String ComputeReplacement(Match m) {
    // You can vary the replacement text for each match on-the-fly
    return "$1http://mydomain.com?uid=123&url=$2";
}

Try the following code

public string ReplaceLinks(string emailSource) {
    string resultString = null;
    try {
        resultString = Regex.Replace(emailSource, "(<a href=\")(htt)", new MatchEvaluator(ComputeReplacement));
    } catch (ArgumentException ex) {
        // Syntax error in the regular expression
    }
    return resultString;
}

public String ComputeReplacement(Match m) {
    // You can vary the replacement text for each match on-the-fly
    return "$1http://mydomain.com?uid=123&url=$2";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文