需要Lookbehind断言吗?

时间:2013-10-08 06:00:05

标签: python regex

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

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

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

甚至

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

所以可能有一个全名,后跟一些单个名字。另请注意每个列表后面项目的前缀间距。我想只提取单个名称,无论这种间距如何。

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

我不是在寻找代码帮助,因为我知道我不是那么远;虽然指导会很棒!看看我正在寻找什么?

2 个答案:

答案 0 :(得分:0)

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

^ *(\S+) *$

但你可能只对寻找信件感兴趣:

^ *([a-zA-Z]+) *$

答案 1 :(得分:0)

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

import re
pattern = re.compile(r'^\s*([^\s]+)\s*$', re.UNICODE)