3 回答
TA贡献1812条经验 获得超5个赞
一种可能是匹配输入字符串中的单词和格式化值选项,然后进行比较:
import re
def get_vals(s):
return re.findall('[\d\-]+\s[\d:]+|\w+', s)
vals = ["This is a car", "This is a 2020-06-05 16:06:30"]
r = ' '.join('{object}' if len(set(i)) > 1 else i[0] for i in zip(*map(get_vals, vals)))
输出:
'This is a {object}'
TA贡献1828条经验 获得超4个赞
您可以找到模板的位置,但无法理解模板中的名称,因此通过区分两个字符串之间的差异,您可以了解模板化字符串的位置。
查看Python - 仅获取字符串之间的差异以获取有关如何获取两个字符串之间差异的建议。
以下一些步骤可以作为您的起点:
获取字符串 A 和 B 之间的差异作为列表,仅收集来自 A 的字符串。
初始化模板 = A
遍历不同的字符串并在模板中替换它们以
{}
在 处,您将拥有来自 A 的模板字符串。
TA贡献1982条经验 获得超2个赞
您可以使用主要用于比对 DNA 序列的许多“序列比对”算法之一。这将返回保存的字符串序列。然后你会保留保护区并添加占位符,其中发生“突变”以获得模板。
https://en.wikipedia.org/wiki/Multiple_sequence_alignment会让你开始。
- 3 回答
- 0 关注
- 77 浏览
添加回答
举报