有一个字符串
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)
答案 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