我正在嘗試編寫一個程序來使用字典替換文件中的文本。將文本從字典優先級替換爲較長的字符串
def preprocess(text, preprocessing_dict):
rc = re.compile('|'.join(map(re.escape, preprocessing_dict)))
def translate(match):
return preprocessing_dict[match.group(0)]
return rc.sub(translate, text)
我想在子串之前先替換較長的字符串。在大多數情況下,上面的代碼片段似乎可以完成這項工作。例如,
preprocessing_dict = { 'ka': 'k', 'ka+i': '<k*' }
的ka+i
任何實例由<k*
和不k+i
替換。
但是在較長版本的字典中(206鍵:從文本文件中讀取值對),'na': 'n', 'na+i': '<n*'
na+i
的任何實例都被n+i
替換。但ka+i
仍然正常工作。
我希望你能指點我正確的方向。謝謝。
詞典沒有排序,你不能依賴那個。 – jonrsharpe