字符串中的变量列表

时间:2014-11-22 16:47:23

标签: python regex string

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']

3 个答案:

答案 0 :(得分:6)

使用string.Formatter.parse

>>> 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']
相关问题