10 Mayıs 2009 Pazar

Uzun bir String içerisindeki e-Mail adreslerini yakalamak

Bir öğrencimden mail yolu ile aşağıdaki soru geldi. Herkesin faydalanabilmesi için cevabımı buraya da yazıyorum.

Soru: Geniş bir TextBox içerisindeki metinden, içeride geçen e-mail adres stringlerini bulup depolamak gerekiyor. Nasıl yapabilirim?

Cevap: String parametre alan ve geriye List<String> döndüren bir method ile bu ihtiyacı karşılayabiliriz. Aşağıdaki method iş görecektir.

    
    public static List<string> EMailleriBul(string aramaYapilacakMetin)
        {
            List<string> adresler = new List<string>();
            MatchCollection aramaSonuclari = Regex.Matches(aramaYapilacakMetin, "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");

      
      for (int i = 0; i < aramaSonuclari.Count; i++)       
      {
                 if (!adresler.Contains(aramaSonuclari[i].Value))
                {
                    adresler.Add(aramaSonuclari[i].Value);
                }
            }

            return adresler;
        }


Kod bloğu için gerekli namespace'ler aşağıda verilmiştir.
System
System.Collections.Generic
System.Text.RegularExpressions

Hiç yorum yok: