Validating Credit Card Numbers

  • + 0 comments

    Try this

    # Enter your code here. Read input from STDIN. Print output to STDOUT
    import re
    
    N=int(input())
    
    for _ in range(N):
        card=input()
        valid=re.search(r'^[456][0-9]{3}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}',card)
        
        if valid:
                valid=re.sub(r'-','',card)
                if len(valid)==16:
                    valid=re.search(r'(\d)\1{3}',valid)
                    if valid : 
                       print('Invalid')
                    else : 
                        print('Valid')
                else : 
                    print('Invalid')
                
        else : 
                print('Invalid')