Найти и заменить заданными элементами массива? - PullRequest
0 голосов
/ 07 июля 2019

С учетом следующего:

Строка: "{Dog} loves {Cat}",

RegExp: {([^}]+)},

Массив: ["Scooby Doo", "Sylvester"]

Как можноЯ легко добиваюсь: "Scooby Doo loves Sylvester"

1 Ответ

1 голос
/ 07 июля 2019

Вы можете заменить каждую подстроку в фигурных скобках подстрокой {}, которая действует как заполнитель, когда строка передается методу str.format.Список должен быть «приведен» к последовательности переменных (это называется распаковка ), поэтому префиксный оператор * необходим перед передачей списка в str.format.

Итак, код может выглядеть следующим образом:

import re
s = "{Dog} loves {Cat}"
l = ["Scooby Doo", "Sylvester"]
print(re.sub(r'{[^{}]*}', '{}', s).format(*l))
# => Scooby Doo loves Sylvester

См. Python demo .

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