Итак, у меня есть следующий фрагмент кода.Найти замену словарей в regex
out = out + re.sub('\{\{([A-z]+)\}\}', values[re.search('\{\{([A-z]+)\}\}',item).group().strip('{}')],item) + " "
Или, разломать
out = out + re.sub(
'\{\{([A-z]+)\}\}',
values[
re.search(
'\{\{([A-z]+)\}\}',
item
).group().strip('{}')
],
item
) + " "
Так, в принципе, если вы даете ему строку, которая содержит {{ссылка}}, он найдет примеры этого, и заменить их с данная ссылка. Проблема с ним в текущей форме заключается в том, что она может работать только на основе первой ссылки. Например, сказать, что мои ценности словарь был
values = {
'bob': 'steve',
'foo': 'bar'
}
и мы прошли его строку
item = 'this is a test string for {{bob}}, made using {{foo}}'
Я хочу, чтобы положить в out
'this is a test string for steve, made using bar'
но то, что он в настоящее время выводит это
'this is a test string for steve, made using steve'
Как изменить код так, чтобы он учитывал позицию в цикле.
Следует отметить, что делает слово раскол не будет работать, так как код должен работать, даже если вход {{foo}}{{steve}}
Имейте в виду, что '[Az]' не только APHA, она включает в себя все символы, которые находятся между '' Z' и Ā' , т.е. '[\]^_' и \ ' – Toto
Это нормально, только я использую код, и я не намерен использовать какой-либо из этих символов. Я могу изменить его на '[A-Za-z]' в любом случае, спасибо за головы –
Возможно ли использовать другой формат ссылки '{{reference}}'? Потому что, если вы могли бы изменить его на {reference}, тогда вы могли бы просто: '' это тестовая строка для {bob}, созданная с использованием {foo} '. Format (** values) ' – miszczu