Open In App

Categorize Password as Strong or Weak using Regex in Python

Last Updated : 15 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a password, we have to categorize it as a strong or weak one. There are some checks that need to be met to be a strong password. For a weak password, we need to return the reason for it to be weak. Conditions to be fulfilled are:

  • Minimum 9 characters and maximum 20 characters.
  • Cannot be a newline or a space
  • There should not be three or more repeating characters in a row.
  • The same string pattern(minimum of two character length) should not be repeating.

Note: For checking the basic validations of a password, click here. Examples:

Input1 : Qggf!@ghf3
Output1 : Strong Password!

Input2 : aaabnil1gu
Output2 : Weak Password: Same character repeats three 
or more times in a row

Input3 : Geeksforgeeks
Output3 : Weak Password: Same character repeats three 
or more times in a row

Input4 : Aasd!feasnm
Output4 : Weak password: Same string pattern repetition

Input5 : 772*hdf77
Output5 : Weak password: Same string pattern repetition

Input6 : " "
Output6 : Password cannot be a newline or space!

Below is the implementation. 

Python3
# Categorizing password as Strong or 
# Weak in Python using Regex 


import re 


# Function to categorize password 
def password(v): 

    # the password should not be a 
    # newline or space 
    if v == "\n" or v == " ": 
        return "Password cannot be a newline or space!"

    # the password length should be in 
    # between 9 and 20 
    if 9 <= len(v) <= 20: 

        # checks for occurrence of a character 
        # three or more times in a row 
        if re.search(r'(.)\1\1', v): 
            return "Weak Password: Same character repeats three or more times in a row"

        # checks for occurrence of same string 
        # pattern( minimum of two character length) 
        # repeating 
        if re.search(r'(..)(.*?)\1', v): 
            return "Weak password: Same string pattern repetition"

        else: 
            return "Strong Password!"

    else: 
        return "Password length must be 9-20 characters!"

# Main method 
def main(): 

    # Driver code 
    print(password("Qggf!@ghf3")) 
    print(password("Gggksforgeeks")) 
    print(password("aaabnil1gu")) 
    print(password("Aasd!feasn")) 
    print(password("772*hd897")) 
    print(password(" ")) 


# Driver Code 
if __name__ == '__main__': 
    main() 

Output
Strong Password!
Weak password: Same string pattern repetition
Weak Password: Same character repeats three or more times in a row
Weak password: Same string pattern repetition
Strong Password!
Password cannot be a newline or space!

Time Complexity: O(N)  N is refers to the length of the input password string,
Auxiliary Space: O(1) 


Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy