Validating Email Addresses With a Filter

Sort by

recency

|

614 Discussions

|

  • + 0 comments
    return re.fullmatch(r'[a-z0-9_-]+@[a-z0-9]+\.[a-z]{1,3}',s,re.I)
    
  • + 0 comments

    Solution without any module e.g Regex

    def fun(s):
        
        delimitor= ['@', '.']
        for i in delimitor:
            s= s.replace(i, " ")
        s= s.split(" ")
       
        if len(s) == 3 and all([i != '' for i in s]):
            if (all(c.isalnum() or c in ('-', '_') for c in s[0])
            and s[1].isalnum() and s[2].isalpha() and len(s[2]) <= 3):
                return True
            else:
                return False
        
    def filter_mail(emails):
        return list(filter(fun, emails))
    
    if __name__ == '__main__':
        n = int(input())
        emails = []
        for _ in range(n):
            emails.append(input())
    
    filtered_emails = filter_mail(emails)
    filtered_emails.sort()
    print(filtered_emails)
    
  • + 0 comments
    def fun(s):
        
        delimitor= ['@', '.']
        for i in delimitor:
            s= s.replace(i, " ")
        s= s.split(" ")
       
        if len(s) == 3 and all([i != '' for i in s]):
            if (all(c.isalnum() or c in ('-', '_') for c in s[0])
            and s[1].isalnum() and s[2].isalpha() and len(s[2]) <= 3):
                return True
            else:
                return False
        
    def filter_mail(emails):
        return list(filter(fun, emails))
    
    if __name__ == '__main__':
        n = int(input())
        emails = []
        for _ in range(n):
            emails.append(input())
    
    filtered_emails = filter_mail(emails)
    filtered_emails.sort()
    print(filtered_emails)
    
  • + 0 comments
    def fun(s):
        # return True if s is a valid email, else return False
        if(s.count("@") != 1 or s.count(".") != 1):
            return False
            
        name, web, ext = s.replace(".", "@").split("@")
    
        name = name.replace("_", "").replace("-", "")
        if(not name.isalnum() or not web.isalnum()):
            return False
        
        if(not ext.isalpha() or len(ext) <= 0 or len(ext) > 3):
            return False
        
        return True
    
  • + 0 comments
    import re
    
    def fun(s):
        # return True if s is a valid email, else return False
        # username@websitename.extension
        
        pattern = r'^[\w-]+@[a-zA-Z0-9]+\.[a-zA-Z]{1,3}$'
        
        return re.match(pattern, s)