我想比较 2 个字符串并显示任何匹配的单词。
例如 -
string1 = "猫脚" string2 = "猫鞋"
结果应该=“猫”
如何使用正则表达式做到这一点?还是有更好的方法来做到这一点?
我想比较 2 个字符串并显示任何匹配的单词。
例如 -
string1 = "猫脚" string2 = "猫鞋"
结果应该=“猫”
如何使用正则表达式做到这一点?还是有更好的方法来做到这一点?
在空格上拆分每个字符串,并将两者都转换为sets。它们的交集将包含它们共有的所有单词。
>>> set("cat feet".split()).intersection(set("cat shoes".split()))
set(['cat'])
此方法不关心单词的顺序。"feet cat" 和 "cat shoes" 将输出 "cat",即使 "cat" 在两个字符串中的位置不同。如果要查找两个字符串中相同位置的单词,可以将拆分的字符串压缩在一起,并仅显示两个字符串中相同位置的单词:
>>> [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]
[]
仅关于正则表达式的使用:正则表达式等效于有限自动机,它们具有仅具有有限状态集的特性,这反过来意味着它们具有有限的内存。因此,您不能做涉及未知任意长度目标字符串的事情。