Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Regular Expressions in Python Introduction to Regular Expressions Word Length

RegEx find_words challenge problem

What exactly is wrong with my code? The error message it gives me is 'Bummer: Didn't get the right output. Output was []. Length was 6.' I have looked at it a lot and cannot figure out what exactly I did wrong and am getting frustrated. It is just supposed to return a list of words that are are count words or more based on a given string

word_length.py
import re

# EXAMPLE:
# >>> find_words(4, "dog, cat, baby, balloon, me")
# ['baby', 'balloon']

def find_words(count, string):
    return re.findall(r"\w{count,}", string)

1 Answer

Hi Kaleb!

Your main issue is that you are trying to use a variable in your regex string, but it is being treated literally.

You need to do something like this (it passes):

import re

# EXAMPLE:
# >>> find_words(4, "dog, cat, baby, balloon, me")
# ['baby', 'balloon']

def find_words(count, string):
    return re.findall(r'\w{' + str(count) + ',}',  string)

This is what injects the variable into the string effectively:

' + str(count) + '

Note that to avoid a concatenation error the integer needs to be cast to a string when concatenating the regex string.

I hope that helps.

Stay safe and happy. coding!

Thank you