一尘不染

如何使用正则表达式在python字符串中找到str.format的所有占位符?

python

我正在创建一个类,该类使用用户指定的格式重命名文件。这种格式将是一个简单的字符串,str.format将调用其方法来填充空格。

事实证明,我的过程将需要提取花括号中包含的变量名称。例如,一个字符串可能包含{user},应该产生yield
user。当然,单个字符串中会有几组花括号,我需要按它们出现的顺序获取它们的内容,并将它们输出到列表中。

因此,"{foo}{bar}"应屈服['foo', 'bar']

我怀疑最简单的方法是使用re.split,但是我对正则表达式一无所知。有人可以帮我吗?

提前致谢!


阅读 149

收藏
2020-12-20

共1个答案

一尘不染

使用re.findall()

In [5]: import re

In [8]: strs = "{foo} spam eggs {bar}"

In [9]: re.findall(r"{(\w+)}", strs)
Out[9]: ['foo', 'bar']
2020-12-20