提取每个单词regex周围的名称



有一个字符串

Mary loves Mike,Jack loves Lily,Ethan loves Lydia

我想用python提取每个loves周围的名称。但是下面的代码不能工作。

names = re.search(r'(S+) loves (S+)',str, ) 
while names: 
    print names.group(1) 
    print names.group(2)
>>> import re
>>> re.findall(r"([a-zA-Z]+) loves ([a-zA-Z]+)", "Mary loves Mike,Jack loves Lily,Ethan loves Lydia")
[('Mary', 'Mike'), ('Jack', 'Lily'), ('Ethan', 'Lydia')]

您可以使用w+来提取单词。而且由于您想提取所有匹配项,您可以使用find all.

str="Mary loves Mike,Jack loves Lily,Ethan loves Lydia";
names = re.findall("(w+) loves (w+)", str)
for name in  names:
        print name

最新更新