Я пишу простое приложение, в котором я хочу заменить определенные слова другими словами.Я сталкиваюсь с проблемами со словами, которые используют одинарные кавычки, такие как aren't
, ain't
, isn't
.
У меня есть текстовый файл со следующими
aren’t=ain’t
hello=hey
Iразобрать текстовый файл и создать из него словарь
u'aren\u2019t' = u'ain\u2019t'
u'hello' = u'hey'
Затем я пытаюсь заменить все символы в данном тексте
text = u"aren't"
def replace_all(text, dict):
for i, k in dict.iteritems():
#replace all whole words of I with K in lower cased text, regex = \bSTRING\b
text = re.sub(r"\b" + i + r"\b", k , text.lower())
return text
Проблема в том, что re.sub()
не соответствуетu'aren\u2019t'
с u"aren't"
.
Что я могу сделать, чтобы моя replace_all()
функция соответствовала "hello"
и `" not "и заменяла их соответствующим текстом?Могу ли я сделать что-то на Python, чтобы мой словарь не содержал Unicode?Могу ли я преобразовать свой текст в символ Unicode или изменить регулярное выражение, чтобы оно соответствовало символу Unicode, а также всему остальному тексту?