Python提供了像
这样的字符串格式s="{a}|{b}.{c}.{a}"
s.format(a=2, b=3, c=4)
输出
'2|3.4.2'
我正在寻找一种方法来获取字符串中的“变量”列表。
所以在我的例子中
list_of_var(s)
应输出
['a', 'b', 'c', 'a']
答案 0 :(得分:6)
>>> s = "{a}|{b}.{c}.{a}"
>>> import string
>>> formatter = string.Formatter()
>>> [item[1] for item in formatter.parse(s)]
['a', 'b', 'c', 'a']
答案 1 :(得分:1)
您可以使用正则表达式
(?<={)\w+(?=})
使用示例
>>> import re
>>> s="{a}|{b}.{c}.{a}"
>>> re.findall(r'(?<={)\w+(?=})', s)
['a', 'b', 'c', 'a']
<强>正则表达式强>
(?<={)
向后看,声称正则表达式由{
\w+
匹配变量名称
(?=})
向前看如果后跟}
答案 2 :(得分:0)
如果您的变量是单个字母数字字符,请尝试:
>>> s="{a}|{b}.{c}.{a}"
>>> [c for c in s if c.isalnum()]
['a', 'b', 'c', 'a']