我有一本REPLACEMENTS
的词典,它的关键字是我想要查找的exactly的字符串.然后,我想用它们对应的字典值替换它们.
例如,
REPLACEMENTS = dict([('max.' , ' maximum '),
('inkl.' , ' inklusive '),
('z.b.' , ' zum beispiel '),
('ggf.', ' gegebenfalls ')])
sample_input_text = "Hallo, ggf ggf. max z.b. alpha z.b beta ca. 25 cm ca inkl. inkl. inkl"
Expected output个
"Hallo, ggf gegebenfalls max zum beispiel alpha z.b beta circa 25 cm ca inklusive inklusive inkl"`
正如您所注意到的,我不想替换像ggf
、ca
和inkl
这样的单词,因为它们与字典中的关键字ggf.
、ca.
和inkl.
不完全匹配,因为缺少点.
My Attempt:个
正如您在下面看到的,我得到的'ggf ', 'max '
和'z.b '
这样的匹配项与字典中的关键字不完全匹配.然后,当我使用re.sub
时,这些部分匹配项将被空白字符替换.
import re
REPLACEMENTS = dict([('max.' , ' maximum '),
('inkl.' , ' inklusive '),
('z.b.' , ' zum beispiel '),
('ggf.', ' gegebenfalls ')])
sample_input_text = "Hallo, ggf ggf. max z.b. alpha z.b beta ca. 25 cm ca inkl. inkl. inkl"
joined = '|'.join(REPLACEMENTS.keys())
print(re.findall(joined, sample_input_text))
>> ['ggf ', 'ggf.', 'max ', 'z.b.', 'z.b ', 'inkl.', 'inkl.']
pattern = re.compile(joined)
output_text = pattern.sub(lambda m: REPLACEMENTS.get(m.group()), sample_input_text)
print(output_text)
>> 'Hallo, gegebenfalls zum beispiel alpha beta ca. 25 cm ca inklusive inklusive inkl'
这个问题的正则表达式模式是什么?