【发布时间】:2013-12-03 14:35:34
【问题描述】:
我正在尝试提取一个大文本(大约 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
有人可以帮我吗?
【问题讨论】:
-
[nsregularexpression]和 Python 有什么关系? -
用
.作为分隔符是什么意思?.表示任何字符,您的任务似乎是搜索,而不是拆分。您提供给您提到的正则表达式的输入是什么?在您提到的模式和句子上直接使用re.search确实将名称标识为("Mary ", "Poppins")。 -
注意
{1}是隐含的;\s和\s{1}都只匹配一个字符。 -
您定义姓名和姓氏的规则是什么?我们必须期待他们是什么样的?所有的名字和姓氏都以大写开头还是姓氏都是大写?您打算如何将姓名或姓氏与逗号后或句子开头的第一个单词(因此以大写开头)分开?
-
我建议阅读kalzumeus.com/2010/06/17/…然后放弃。