我正在创建一个类,用于使用用户指定的格式重命名文件。该格式将是一个简单的字符串,其str.format
方法将被调用以填充空白部分。
事实证明,我的过程需要提取包含在大括号内的变量名称。例如,一个字符串可能包含{user}
,它应该产生user
。当然,在单个字符串中会有几组大括号,我需要按照出现顺序获取每个大括号内的内容,并将它们输出到列表中。
因此,"{foo}{bar}"
应该产生['foo', 'bar']
。
我怀疑最容易的方法是使用re.split
,但我对正则表达式一无所知。能否有人帮帮我?
提前感谢!
str.format
- 它将忽略模式中不存在的变量。'{user}_{bar}'.format(user='Mike', foo=1, bar=2)
将输出Mike_2
。我碰巧已经将允许的变量固定在字典中,因此可以跳过在模式中查找变量的步骤。无论如何,了解string.Formatter()
非常有用。 - yentsun