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 關注
- 119 瀏覽
添加回答
舉報