【问题标题】:Replace email string替换电子邮件字符串
【发布时间】:2025-12-10 00:45:01
【问题描述】:

所以我想替换一个普通的电子邮件,例如:"teste123@test.com" 到 “teste123 null@test.com"`

直到现在我才知道:

  string expression = @"(([^<>()\[\]\\.,;:\s@']+(\.[^<>()\[\]\\.,;:\s@']+)*)|('.+'))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))";
            Regex rx = new Regex(expression);
            MatchCollection matches = rx.Matches(conteudo.PaginaConteudo);
            Console.WriteLine("{0} matches found in:\n   {1}",
                     matches.Count,
                     conteudo.PaginaConteudo);

            string email,
                   replacement = "<h5 style='display:none;'>null</h5>",
                   mailenc,
                   correctString;

            foreach (Match emails in matches)
            {
                email = emails.Value;
                mailenc = "<h5>"+email + replacement+"</h5>";
                correctString = conteudoOriginal.PaginaConteudo.Replace(email, mailenc);
                conteudoOriginal.PaginaConteudo = correctString;

            }

【问题讨论】:

  • 拆分 @ 并添加您的字符串或使用 msdn.microsoft.com/en-us/library/… 并添加您的字符串。
  • 这段代码有什么问题?什么是预期的输出?您想在代码中替换哪个电子邮件?
  • 您永远不应该将 html 代码写成 C# 中的字符串。您正在代码中进行“UI 样式化”,这是可怕的关注点分离。为此使用 CSS。您还编写了一半缺少的代码,您在那里使用了一个正则表达式,我们看不到它:(
  • 就像我一样,我希望输出从“teste123@test.com”到“teste123 null@test.com"`
  • 如果邮件模板比较复杂,您仍然可以使用许多模板处理器的one

标签: c# asp.net-mvc model-view-controller


【解决方案1】:
email = emails.Value.Replace("@","<b style='display:none;'>null</b>@");

【讨论】:

  • @dorinmunteanu 如果可行,请考虑accepting the answer
  • 我可以使用你的 Skype,以便我可以就这个主题提出更多问题吗? @KemalGüler
  • 这是我的 Skype ID:kemalgulr @dorinmunteanu