比较或匹配2个字符串并显示匹配的单词

时间:2013-08-27 13:34:32

标签: python-2.7

我想比较2个字符串并显示任何匹配的单词。

例如 -

string1 =“猫脚” string2 =“猫鞋”

结果应该=“cat”

如何使用正则表达式执行此操作?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

Split在空格上的每个字符串,并将它们都转换为sets。他们的intersection将包含他们共有的所有单词。

>>> set("cat feet".split()).intersection(set("cat shoes".split()))
set(['cat'])

此方法不关心单词的排序。 “脚猫”和“猫鞋”将输出“猫”,即使“猫”在两个弦中都没有出现在同一位置。如果要查找两个字符串中位于相同位置的单词,可以将zip拆分字符串放在一起,并仅显示两个字符中存在于同一位置的单词:

>>> [a for a,b in zip("cat feet".split(), "cat shoes".split()) if a == b]
['cat']
>>> [a for a,b in zip("feet cat".split(), "cat shoes".split()) if a == b]
[]

答案 1 :(得分:0)

关于正则表达式的使用: 正则表达式等价于有限自动机,它们具有只有一组有限状态的特性,这反过来又意味着它们具有有限的存储器。因此,你不能做涉及未知的任意长度目标字符串的东西。

相关问题