我试图在一个大文本(大约 20 页)中提取所有的名字和姓氏(例如:John Johnson)。

我使用了 \. 作为分隔符的 split 并且有我的正则表达式:

\b([A-Z]{1}[a-z]+\s{1})([A-Z]{1}[a-z]+)\b

不幸的是,我只得到了文本的所有行,而不仅仅是名字和姓氏:
Suddenly, Mary Poppins flew away with her umbrella
Later in the day, John.... bla bla bla

有人可以帮助我吗?

最佳答案

尝试

regex = re.compile("\b([A-Z]{1}[a-z]+) ([A-Z]{1}[a-z]+)\b")
string = """Suddenly, Mary Poppins flew away with her umbrella
Later in the day, John Johnson did something."""
regex.findall(string)

我得到的输出是:
[(u'Mary', u'Poppins'), (u'John', u'Johnson')]

关于python - 在 Python 中提取名字和姓氏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20353995/

10-12 19:42