您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中将字符串转换或取消格式化为变量(如format(),但相反)

在Python中将字符串转换或取消格式化为变量(如format(),但相反)

实际上,Python正则表达式库已经提供了您所要求的常规功能。您只需要稍微更改模式的语法

>>> import re
>>> from operator import itemgetter
>>> mystr='Version 1.15.6\n'
>>> m = re.match('Version (?P<_0>.+)\.(?P<_1>.+)\.(?P<_2>.+)', mystr)
>>> map(itemgetter(1), sorted(m.groupdict().items()))
['1', '15', '6']

如您所见,您必须将(un)格式字符串从{0}更改为(?P <_0>。+)。您甚至可以要求带(?P <_0> \ d +)的小数。另外,您必须转义某些字符以防止它们被解释为正则表达式特殊字符。但这可以再次自动化,例如

>>> re.sub(r'\\{(\d+)\\}', r'(?P<_\1>.+)', re.escape('Version {0}.{1}.{2}'))
'Version\\ (?P<_0>.+)\\.(?P<_1>.+)\\.(?P<_2>.+)'
python 2022/1/1 18:43:40 有292人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶