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 trialNathan McElwain
4,575 Pointserror: bad character range
I keep getting this error 'bad character range'. I'm unable to decipher what I did in error here, and moreover, what was the "bad character range". I imagine it has something to do with the hyphens in the sets, but they're placed by themselves, not between numbers or letters.
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.]+),\t
(?P<phone>[\d{3}-\d{3}-\d{4}])$
''', string, re.X|re.M)
1 Answer
Chris Freeman
Treehouse Moderator 68,441 PointsVery Close! Just a few adjustments: Remove the ^
and the $
as they mark matching from the begining of a line and matching to the end of a line. Since you're not matching on the name or twitter name, your pattern doesn't hit the start or end of the line. Second, remove the [
]
around the phone digits. They're used to mark a character range (hence the error). Corrected solution below.
contacts = re.search(r'''
(?P<email>[-\w\d.+]+@[-\w\d.]+),\s+
(?P<phone>\d{3}-\d{3}-\d{4})
''', string, re.X|re.M)
Nathan McElwain
4,575 PointsNathan McElwain
4,575 Pointsah ha! I guess I misunderstood the ^/$ function. I thought it made the patterns run line by line, but I guess that doesn't really make sense. Oh well, live and learn! And now I have. Thank you once again!