查找并替换为给定的数组元素?

时间:2019-07-07 19:25:37

标签: regex python-3.x

给出以下内容:

字符串:"{Dog} loves {Cat}"

RegExp:{([^}]+)}

数组:["Scooby Doo", "Sylvester"]

如何轻松实现:"Scooby Doo loves Sylvester"

1 个答案:

答案 0 :(得分:1)

您可以用{}子字符串替换大括号内的每个子字符串,当该子字符串传递给str.format方法时,该子字符串用作占位符。该列表需要“连接”到一系列变量(称为 unpacking ),因此,在将列表传递给*之前,需要前缀运算符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