Python 提取两个字符串之间的差异

Python 提取两个字符串之间的差异,python,python-3.x,Python,Python 3.x,假设我有两个字符串: s1=“你好,这是一个测试” s2=“这是一个测试,测试。” 那么,如何提取不在s1中的s2字符串 diff = function(s1,s2) print(diff) “,测试。” 也许这会有帮助: s1=“你好,你好吗?” s2=“你好” 如果s1中有s2: 打印(s1.替换(s2.)) s2中的elif s1: 打印(s2.替换(s1'')) 其他: 打印('不是子字符串') 更新 然后使用此选项: s1=“你好,这是一个测试” s2=“这是一个测试,测试。”

假设我有两个字符串:

s1=“你好,这是一个测试”

s2=“这是一个测试,测试。”

那么,如何提取不在s1中的s2字符串

diff = function(s1,s2) 
print(diff)
“,测试。”

也许这会有帮助:

s1=“你好,你好吗?”
s2=“你好”
如果s1中有s2:
打印(s1.替换(s2.))
s2中的elif s1:
打印(s2.替换(s1''))
其他:
打印('不是子字符串')
更新

然后使用此选项:

s1=“你好,这是一个测试”
s2=“这是一个测试,测试。”
差异=“”
对于s2.split()中的单词:
如果单词不在s1.split()中:
diff+=单词+“”
打印(差异)

最好的是levenshtein算法,您可以计算两个句子之间的距离(将一个句子转换为另一个句子需要多少字符替换)或相似性比率,如果您愿意:

>>> import Levenshtein
>>> Levenshtein.distance( 'hello, guys', 'hello, girls' )
3
>>> Levenshtein.ratio( 'hello, guys', 'hello, girls' )
0.782608695652174

您可以在此处查看实现的详细信息和其他信息:

如果
s2
不是
s1
的子字符串,您希望函数返回什么?。。这些职位相关吗?你好吗,你好吗?和
你好你好
?在您的示例中,“?”发生了什么?输出将是
你好吗?
@MatsLindh True,谢谢@“对不起,我重新措辞了我的问题。这还不够清楚。请看一看。非常感谢。对不起,我重新措辞了我的问题。这还不够清楚。请看一看。非常感谢你。