Python替换字符串中的多个子字符串

我有一条文字:“{name} 喜欢 {post}”。我根据 {} 中的值从 db 中获取数据。然后我得到一个数组中的值,比如 ["John", "515335"] 一个数据。

我不知道我会在字符串中得到多少个变量。也会是 1 或 3。(但要替换的内容数量和值将相同)

那么替换此字符串中的值的最佳方法是什么?

我试过:

for i in range(len(subContentArr)):
              content = re.sub(subContentArr[i], valuesArr[i], content, flags=re.IGNORECASE)

但我明白了local variable 'content' referenced before assignment。(内容是我用花括号得到的文本)

预期输出:“约翰喜欢 515335”

回答

如果ab是您的数据库输入,您可以d像这样创建您想要的输出:

import re

a = "{name} likes {post}"
b = ['John', '515335']

c = re.sub(r'{[^}]+}', '{}', a)

d = c.format(*b)

基本上c将是输入字符串的修改版本,它将简化占位符,{}然后我们可以使用它.format()以相同的顺序用值替换占位符。


以上是Python替换字符串中的多个子字符串的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>