使用regex在各种上下文中用字典键交换文本中的值(python)



我正在尝试制作一个正则表达式替换程序,该程序可以在变量上下文中查找缩写并对其进行unbbreviate。我已经尝试了一段时间,但似乎无法理解。我想使用字典中的键作为模式来搜索并替换为文本文件中的值。下面是我最近一次失败的尝试。有人能给我指一个正确的方向吗?或者给我举一个功能性的例子吗?

import re
text = 'ed (ed) started'
text2 = 'rarely kg/mg'
dic = {'kg': 'kilogram', 'mg': 'miligram', 'ED': 'Emergency Department'}
for key in dic:
textproc = re.sub(r"[(b]" + key + r"[)b]", dic.get(key), text)
print (key)
print (dic.get(key))
print(textproc)

看看这个例子:

import re
text = 'ed (ed) started ED'
text2 = 'rarely kg/mg'
dict = {'kg': 'kilogram', 'mg': 'miligram', 'ED': 'Emergency Department'}
def expand_abbr(s):
initial = s
for key in dict:
pattern = r'b{}b'.format(re.escape(key))
s = re.sub(pattern, dict[key], s)
return f'{initial:20} -> {s}'
print(expand_abbr(text))
print(expand_abbr(text2))

输出:

ed (ed) started ED   -> ed (ed) started Emergency Department
rarely kg/mg         -> rarely kilogram/miligram

最新更新