Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Regular Expressions in Python Introduction to Regular Expressions Email Groups

Chris Grazioli
Chris Grazioli
31,225 Points

Why do I keep getting: Bummer! error: bad character range }-\d at position 110 (line 3, column 20)

Is there something I am missing in the Regex I have here? I believe I'm doing it exactly as the video shows, what the heck

emails.py
import re

string = '''Love, Kenneth, kenneth+challenge@teamtreehouse.com, 555-555-5555, @kennethlove
Chalkley, Andrew, andrew@teamtreehouse.co.uk, 555-555-5556, @chalkers
McFarland, Dave, dave.mcfarland@teamtreehouse.com, 555-555-5557, @davemcfarland
Kesten, Joy, joy@teamtreehouse.com, 555-555-5558, @joykesten'''

contacts=re.search(r'''
    (?P<email>[-\w\d.+]+@[-\w\d.]+),\s  # email address comma and space not part of group
    (?P<phone>[\d{3}-\d{3}-\d{4}])  # phone number
''', string, re.X)

1 Answer

Steven Parker
Steven Parker
229,788 Points

It looks like you have a little something extra that you probably did not intend.

:point_right: Brackets ([]) enclose a character class, but you don't need one here:

    (?P<phone>\d{3}-\d{3}-\d{4})  # phone number

Had the same problem and took the brackets out and was golden. Then changed it to a character class [-\d]+ and it worked as well. Cheers for the info!

Chris Grazioli
Chris Grazioli
31,225 Points

Thank you. I thought the brackets are described in the video as being sets not ranges. The range of occurrences is in curly braces {3,5}.

Shouldn't a set like [\d]+ work for the score, just as well as \d\d or \d+