extract all email address from a text using c#

后端 未结 5 546
终归单人心
终归单人心 2020-12-12 21:52

Is there a way to extract all email addresses from a plain text using C# .

For example

my email address is mrrame@gmail.com and his email is

相关标签:
5条回答
  • 2020-12-12 22:30

    Following works

    public static void emas(string text)
            {
                const string MatchEmailPattern =
               @"(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
               + @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\."
                 + @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
               + @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})";
                Regex rx = new Regex(MatchEmailPattern,  RegexOptions.Compiled | RegexOptions.IgnoreCase);
                // Find matches.
                MatchCollection matches = rx.Matches(text);
                // Report the number of matches found.
                int noOfMatches = matches.Count;
                // Report on each match.
                foreach (Match match in matches)
                {
                    Console.WriteLine(match.Value.ToString());
                }
            }
    
    0 讨论(0)
  • 2020-12-12 22:39

    Just remove the "^" from the beginning and the "$" from the end of your filter string.

    0 讨论(0)
  • 2020-12-12 22:39

    give this a try http://www.regular-expressions.info/email.html

    0 讨论(0)
  • 2020-12-12 22:44

    check this snippet

    using System.IO;
    using System.Text.RegularExpressions;
    using System.Text;
    
    class MailExtracter
    {
    
        public static void ExtractEmails(string inFilePath, string outFilePath)
        {
            string data = File.ReadAllText(inFilePath); //read File 
            //instantiate with this pattern 
            Regex emailRegex = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*",
                RegexOptions.IgnoreCase);
            //find items that matches with our pattern
            MatchCollection emailMatches = emailRegex.Matches(data);
    
            StringBuilder sb = new StringBuilder();
    
            foreach (Match emailMatch in emailMatches)
            {
                sb.AppendLine(emailMatch.Value);
            }
            //store to file
            File.WriteAllText(outFilePath, sb.ToString());
        }
    }
    
    0 讨论(0)
  • 2020-12-12 22:50

    If you don't want it to match perfect email addresses, don't use a regular expression that matches perfect email addresses.

    The regular expression you are using will match on the start of the line (^) and the end of the line ($), so if you remove those it will not filter with them.

    0 讨论(0)
提交回复
热议问题