Python Regular Expressions in Python Introduction to Regular Expressions Name Groups

David Gahagan
David Gahagan
1,824 Points

I feel like I've answered this question and am not sure what you are after.

The question was looking for me (I think) to create a dictionary defining the last_name and first_name keys. I've done that but it says I've created too many groups

names.py
import re

string = 'Perotto, Pier Giorgio'

names = re.match(r'''
    ^(?P<last_name>[\w]*)
    ([,]\s)
    (?P<first_name>[\w ]*)$ 
''',string,re.X|re.M|re.I)

2 Answers

Frank Genova
Frank Genova
Python Web Development Techdegree Student 12,586 Points

spoiler answer I looked back at my old notes and at the challenge. The task is "Create a variable names that is an re.match() against string. The pattern should provide two groups, one for a last name match and one for a first name match. The name parts are separated by a comma and a space."

Here is the approach I used:

import re

string = 'Perotto, Pier Giorgio'

names = re.match(r'''
    ([-\w ]+),\s
    ([-\w ]+)
''', string, re.VERBOSE)

print(names)
David Gahagan
David Gahagan
1,824 Points

Thanks Frank, I think just because of the previous video detailing dictionary usage I thought that's what they were after. You were right.

best regards Dave