可以使用Python中的difflib包比较两个字符串,然后在有不同的单词时进行标记。具体的实现方法如下:
import difflib
def compare_strings(str1, str2):
"""
比较两个字符串并标记不同的单词
:param str1: 字符串1
:param str2: 字符串2
:return: 带有标记的字符串
"""
# 使用difflib包的SequenceMatcher()函数比较两个字符串的相似度
seq = difflib.SequenceMatcher(None, str1.split(), str2.split())
# 获取匹配度为0的部分
diff = seq.get_opcodes()
# 将不同的单词用标记标记出来
marked_str = []
for tag, i1, i2, j1, j2 in diff:
if tag == 'replace':
marked_str.append('' + ' '.join(str1.split()[i1:i2]) + '')
marked_str.append('' + ' '.join(str2.split()[j1:j2]) + '')
elif tag == 'delete':
marked_str.append('' + ' '.join(str1.split()[i1:i2]) + '')
elif tag == 'insert':
marked_str.append('' + ' '.join(str2.split()[j1:j2]) + '')
else:
marked_str.append(' '.join(str1.split()[i1:i2]))
return ' '.join(marked_str)
示例:
str1 = 'The quick brown fox jumps over the lazy dog'
str2 = 'The quick brown cat runs under the lazy dog'
marked_str = compare_strings(str1, str2)
print(marked_str)
# 输出:cat runs under fox jumps over the lazy dog
可以看到,这个函数将不同的单词用HTML标记标记出来,方便后续处理。