Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
385 views
in Technique[技术] by (71.8m points)

regex - Extracting name as first name last name in python

I have a text file with lines as:

Acosta, Christina, M.D. is a heart doctor

Alissa Russo, M.D. is a heart doctor

is there a way to convert below line:

Acosta, Christina, M.D. is a heart doctor

to

Christina Acosta, M.D. is a heart doctor

Expected Output:

Christina Acosta, M.D. is a heart doctor
Alissa Russo, M.D. is a heart doctor
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can use the follow regex to group the first and last names and substitute them in reverse order without the comma:

import re
data = '''Acosta, Christina, M.D. is a heart doctor
Alissa Russo, M.D. is a heart doctor'''
print(re.sub(r"([a-z'-]+), ([a-z'-]+)(?=,s*M.D.)", r'2 1', data, flags=re.IGNORECASE))

This outputs:

Christina Acosta, M.D. is a heart doctor
Alissa Russo, M.D. is a heart doctor

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...