Learn Regular Expressions by Building a Password Generator - Step 47

Tell us what’s happening:

Hello all, i am not sure where I am going wrong with this step, please help. The code says I should complete the fourth pattern non alphanumeric character

Your code so far

import re
import secrets
import string


def generate_password(length, nums, special_chars, uppercase, lowercase):
    # Define the possible characters for the password
    letters = string.ascii_letters
    digits = string.digits
    symbols = string.punctuation

    # Combine all characters
    all_characters = letters + digits + symbols

    while True:
        password = ''
        # Generate password
        for _ in range(length):
            password += secrets.choice(all_characters)

# User Editable Region

          
        constraints = [r'\da-zA-Z']   

# User Editable Region

    return password
    
# new_password = generate_password(8)
# print(new_password)

pattern = r'\.'
quote = 'Not all those who wander are lost.'
# print(re.findall(pattern, quote))

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 47

This is the starting code:

constraints = [
            (nums, r'\d'),
            (lowercase, r'[a-z]'),
            (uppercase, r'[A-Z]'),
            (special_chars, r'')
        ] 

The fourth pattern is the string right after special_chars. You need to add content to it, without deleting anything else.

This is what I have so far, but I am still not sure what I should be doing to satisfy

'Sorry, your code does not pass. Hang in there.

  1. You should complete your fourth pattern to match any non-alphanumeric character.’

import re
import secrets
import string

def generate_password(length, nums, special_chars, uppercase, lowercase):
# Define the possible characters for the password
letters = string.ascii_letters
digits = string.digits
symbols = string.punctuation

# Combine all characters
all_characters = letters + digits + symbols

while True:
    password = ''
    # Generate password
    for _ in range(length):
        password += secrets.choice(all_characters)
      
    constraints = [r'\da-zA-Z' ']   
return password

new_password = generate_password(8)

print(new_password)

pattern = r’.’
quote = ‘Not all those who wander are lost.’

print(re.findall(pattern, quote))

You deleted the other items in constraints. Reset the code for this step and try again without deleting anything.

Your pattern should use a character class, which is indicated by square brackets. Within the square brackets, you want to start with a ^ to negate the pattern, and then combine a-z, A-Z, and 0-9.

oh gosh thanks just forgot how to read properly there for second.