vpo*_*ain 2 python string format parsing
比方说,我有一个字符串:
> my_string = '{foo}/{bar}'
> my_string.format(foo='foo', bar='bar')
'foo/bar'
Run Code Online (Sandbox Code Playgroud)
对,很酷.但在我的情况下,我想检索哪些是关键字参数my_string.我已经做好了:
> ATTRS_PATTERN = re.compile(r'{(?P<variable>[_a-z][_a-z0-9]*)}')
> ATTRS_PATTERN.findall(my_string)
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)
它不是很性感.你有更好的主意吗?
为什么重新发明轮子?string.Formatter有parse()函数.
>>> import string
>>> [a[1] for a in string.Formatter().parse('{foo}/{bar}')]
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)