использовать регулярные выражения для замены словарного ключа на значение в тексте в различных контекстах (python)? - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь создать программу подстановки регулярных выражений, которая может находить сокращения в переменных контекстах и ​​сокращать их. Я немного терялся в этом, но, похоже, не понимаю. Я хочу использовать ключи в словаре в качестве шаблона для поиска и замены на значение в текстовом файле. Моя последняя неудачная попытка ниже. Кто-нибудь может указать мне правильное направление или дать мне функциональный пример?

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)

1 Ответ

0 голосов
/ 04 апреля 2020

Взгляните на этот пример:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...