我有oldstring
:
'foobarba <span class="foo">z</span>'
和newstring
:
'foodbar ba<span class="foo">z</span>'
为类名提供了一个字符串,它可能再次为"foo"
,让我们说"bar"
。
鉴于newstring
,oldstring
和bar
,我想最终得到:
'foo<span class="bar">d</span> ba<span class="foo">z</span>'
我想区分两个字符串。如果新字符串更短,可能会检查空标签并通过它们...但是现在我们什么都不做。但是,如果新字符串更长(它可能会长1个字符,可能更长,但很少),我想找到新字符,检查它是否被适当的跨度包裹(具有给定的字符) bar),如果没有包裹,请将它包起来。
如果oldstring
现在是:
'foo<span class="bar">d</span> ba<span class="foo">z</span>'
再次将foo
作为类名和新闻字符串:
'foo<span class="bar">dz</span> ba<span class="foo">z</span>'
我想感受一下新的z
字符并提出
'foo<span class="bar">d</span><span class="foo">z</span> ba<span class="foo">z</span>'
OR
'foo<span class="bar">d<span class="foo">z</span></span> ba<span class="foo">z</span>'
对于好的python模块的建议,甚至可能是stdlib的快速技巧都会很棒。我很累;可能会在明天醒来。
答案 0 :(得分:1)
使用stdlib中的difflib
查找字符串之间的差异,然后只在差异处插入span标记。