0

我有一个这样的名字列表:

[u'First Last', u' First', u' First', u' First'...]

或者

[u'First M. Last', u' Last, u' Last'...]

甚至

[u'First', u' First', u' First'...]

所以可能有一个全名,后面跟着一些单名。还要注意每个列表后面项目的前缀间距。我只想提取单个名称,而不考虑这样的间距。

我试图确定某种后向断言是否是正确的方法。我很难找到看起来可能适用的 Python 示例。间距是通过正则表达式提取早期实体的产物,这可能不是最佳的,但这是另一个问题......

我不是在寻找代码帮助,因为我知道我并没有那么远;不过,指导会很棒!向后看是我要找的吗?

4

2 回答 2

0

我使用这个正则表达式来获取单个单词:

^ *(\S+) *$

但您可能只对查看字母感兴趣:

^ *([a-zA-Z]+) *$
于 2013-10-08T06:23:30.823 回答
0

这可能是您需要的,请确保使用UNICODE标志,因为您使用的是 unicode 字符串u''

import re
pattern = re.compile(r'^\s*([^\s]+)\s*$', re.UNICODE)
于 2013-10-08T06:32:09.010 回答