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 trialElizabeth McInerney
3,175 Points?P<>
My code is returning empty. I think my problem is with ?P<>. Do I need to add something to put them both on one line?
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.findall(r'(?P<email>[\w+.]+@[\w.]+)(?P<phone>\d{3}-\d{3}-\d{4})',string)
2 Answers
Jason Anello
Courses Plus Student 94,610 PointsHi Elizabeth,
The challenge instructions say to use re.search
so you'll need to switch to that instead of re.findall
The only other issue is that you're not matching the comma and space between the email and phone number. You have to match these but they shouldn't be part of your named groups.
contacts = re.search(r'(?P<email>[\w+.]+@[\w.]+),\s(?P<phone>\d{3}-\d{3}-\d{4})',string)
Elizabeth McInerney
3,175 PointsThanks, the comma and the space worked. That makes sense. I thought it was pulling out any email and any phone number it found, but it makes sense that it is pulling out an email/phone combination.
Elizabeth McInerney
3,175 PointsElizabeth McInerney
3,175 PointsI've tried it with both search and findall, and it return empty both ways. I will try adding the comma and space.
Jason Anello
Courses Plus Student 94,610 PointsJason Anello
Courses Plus Student 94,610 PointsYes, you have to switch to re.search but also add in the comma and space.
You have to put it between your 2 named groups as I've shown in the code above.