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 Players Dictionary and Class

fahad lashari
fahad lashari
7,693 Points

Code challenge help please. Completely stuck

So this is as far as I could possibly get. I am not sure how I can display the exact result being requested by the question. I would greatly appreciate any help or guidance.

I await your response

kind regards,

Fahad

players.py
import re

string = '''Love, Kenneth: 20
Chalkley, Andrew: 25
McFarland, Dave: 10
Kesten, Joy: 22
Stewart Pinchback, Pinckney Benton: 18'''

players = re.match(r'''
          (?P<last_name>[\w\s?\w?]+,)
          (?P<first_name>[\w\s?\w?]+)
          (?P<score>[:\s\d]+)
''', string, re.X | re.M | re.I)
Marc Vilar
Marc Vilar
8,230 Points

Hi there,

this works, basically get the , \s and : out of the groups, add the ^ and $ and works. players = re.match(r''' ^(?P<last_name>[\w+\s?\w?]+),\s (?P<first_name>[\w\s?\w?]+):\s (?P<score>[\d]+)$ ''', string, re.X | re.M | re.I)

I would have to doublecheck, ip the , and colon out of the groups.

fahad lashari
fahad lashari
7,693 Points

Marc Vilar Hi marc. That worked brilliantly. Put that comment in the answer second at the bottom so I can mark it as the best answer.

Many thanks for you help!

Kind regards,

Fahad

2 Answers

Marc Vilar
Marc Vilar
8,230 Points

Hi there,

this works, basically get the , \s and : out of the groups, add the ^ and $ and works. players = re.match(r''' ^(?P<last_name>[\w+\s?\w?]+),\s (?P<first_name>[\w\s?\w?]+):\s (?P<score>[\d]+)$ ''', string, re.X | re.M | re.I)

I would have to doublecheck, ip the , and colon out of the groups.

Jeffrey Covington
Jeffrey Covington
7,246 Points

You shouldn't need the re.I you only need to use that if you use explicit word characters