如何从长字符串中识别电子邮件地址并将电子邮件地址替换为我公司的电子邮件地址?

时间:2011-11-24 06:32:54

标签: c# regex

问题不仅仅是从字符串中识别电子邮件地址。它是关于用公司电子邮件地址替换找到的电子邮件地址。

例如。如果我有一个字符串如下:

“嗨,我的名字是John Martin。我是画家和雕塑家。如果你想购买我的画作,请在网站上查看我的作品集,然后通过 john@gmail.com与我联系

我想用

替换上面的字符串

“嗨,我的名字是John Martin。我是画家和雕塑家。如果你想购买我的画作,请在网站上查看我的作品集,然后通过 support@companyname.com与我联系

2 个答案:

答案 0 :(得分:3)

以下代码会将与该模式匹配的所有电子邮件字符串替换为您的电子邮件ID,Regex类可以在System.Text.RegularExpressions命名空间

中找到
Regex emailReplace = new Regex(@"[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}", RegexOptions.IgnoreCase);
emailReplace.Replace("YOUR TEXT HERE", "support@companyname.com");

答案 1 :(得分:1)

public String GetEMailAddresses(string Input)
{
    System.Text.RegularExpressions.MatchCollection MC = System.Text.RegularExpressions.Regex.Matches(Input, "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");

    if(MC.Count > 0)
        return MC[0].Value;

    return "";
}

您可以使用上述方法找到电子邮件地址。如果它返回“”之外的其他内容,则表示它是一个电子邮件地址。现在,您只需使用String.Replace方法将旧版本替换为新的电子邮件地址

即可
string input = "Hi, My name is John Martin. I am a painter and sculptor. If you wish to purchase my paintings please look at my portfolio on the site and then contact me on support@companyname.com";
            string email = GetEMailAddresses(input);
            input = input.Replace(email, "support@companyname.com");