我想从字符串中匹配可能的名称。一个名字应该是2-4个单词,每个单词有3个或更多的字母,所有单词都大写。例如,给定以下字符串列表:
Her name is Emily.
I work for Surya Soft.
I sent an email for Ery Wulandari.
Welcome to the Link Building Partner program!
我想要一个返回:
None
Surya Soft
Ery Wulandari
Link Building Partner
目前我的代码是:
data = [
'Her name is Emily.',
'I work for Surya Soft.',
'I sent an email for Ery Wulandari.',
'Welcome to the Link Building Partner program!'
]
for line in data:
print re.findall('(?:[A-Z][a-z0-9]{2,}\s+[A-Z][a-z0-9]{2,})', line)
它对前三行有效,但在最后一行失败。你知道吗
非正则表达式解决方案:
输出:
您可以使用:
它可以添加可以用
.strip()
修剪的尾随空格您可以对重复结构使用分组,如下所示:
输出:
相关问题 更多 >
编程相关推荐