Чувствительная к регистру замена строки слова из словаря в Python - PullRequest
0 голосов
/ 10 октября 2019

У меня есть словарь, полный пар ключ-значение, где ключ - это слово, которое я хочу найти в строке, а значение - это то, чем я хочу заменить его. Это должно быть в состоянии сохранить дело также. Я спотыкаюсь о логике в этих обстоятельствах.

Я думал, что будет полезно разбить строку на список слов, но я не уверен, будет ли это самым простым способом.

dict = {'my':'your', 'dog':'cat'}
string = 'My dog is named Jeffrey.'

Я хотел бы подставить значения для ключей в строке, но сохранить регистр и пунктуацию.

1 Ответ

0 голосов
/ 11 октября 2019

Вы можете использовать re.sub, чтобы сделать регистр нечувствительным к регистру. Что действительно трудно, так это узнать, какая буква является заглавной, потому что у нас могут быть слова разного размера, поэтому я применил правило, согласно которому первая буква в фразе должна быть заглавной, используя метод заглавных букв.

import re

dict = {'my':'your', 'dog':'cat'}
inputString = 'My dog is named Jeffrey.'

for key in dict.keys():
    inputString = re.sub("(?i)"+key,dict[key],inputString)
    inputString = inputString.capitalize()

print(inputString)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...