提取每个单词正则表达式周围的名称

时间:2015-06-10 06:20:32

标签: python 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)

2 个答案:

答案 0 :(得分:9)

>>> 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')]

答案 1 :(得分:1)

您可以使用\ w +提取单词。此外,由于您想要提取所有匹配项,因此您可以使用全部查找。

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