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

fahad lashari
fahad lashari
6,771 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
6,771 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