Excel üzerinde Regular Expression Kullanarak Email adres kontrolü

regexBir süre önce elime geçen bir adres telefon dosyasında 12000 satır veri ve bunlara bağlı eposta adresleri vardı ve bu verileri bir şekilde ilişkiler bir veri tabanı içine yerleştirmem isteniyordu.

Buraya kadar yazması güzel ama tablodaki hatalı verilerin ilerleyen günlerde başıma dert olabileceğini bildiğimden en basitinden bir eposta adres düzeltme/kontrol yapısına ihtiyacım oldu.

Bunun için de Excel VBA alanında (ALT+F11) bir modul açarak içine aşağıdaki kodları yerleştirdim

Public Function epostaRegex(ByVal email As String) As Boolean
With CreateObject("VBScript.RegExp")
.IgnoreCase = True
.Global = True
.Pattern = "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"
epostaRegex = .Test(email)
End With
End Function

VBA editörüne kodlarımı yerleştirdikten sonra epostaRegex fonksiyonumu kullanabilmek için Excel sayfamı açtım ve

emailRegex

bu kodları fonksiyon olarak tanımladıktan sonra ise excel sayfamda B1 hücreme =epostaRegex(A1) yazarak A1 hücresindeki eposta verisinin doğru olup olmadığını kontrol edecek fonksiyonu işledim.

Eğer A sütunundaki eposta yazımında hata yoksa B Sütunun ilgili satırına DOĞRU yazdı, eğer hata varsa YANLIŞ yazdı.

Yukarıdaki resimde de görebileceğiniz gibi A2 satırındaki epostanın önünde boşluk karakteri, A3 satırının sonunda da boşluk karakteri yer almaktadır ve bu ifadeleri fonksiyonumuz YANLIŞ olarak görmektedir.

Bu şekilde binlerce eposta adresinden yazım hatalı olanları hızlı bir şekilde bulup düzeltebilirsiniz.

Loading