我有以下正则表达式,它允许我使用re.split解析"20%+","20%"或"20% - 50%"等百分比.
'([0-9]{1,3}[%])([+-]?)'
Run Code Online (Sandbox Code Playgroud)
我想使用字符串格式来传递序列标识符(即'+ - ')作为config.py中的参数.
SERIES = '+-'
Run Code Online (Sandbox Code Playgroud)
我试过的两种方法产生了错误.新式格式化会遇到以下错误(由于{m,n}用法):
>>> import config
>>> regex = '([0-9]{1,3}[%])([{0}]?)'.format(config.SERIES)
KeyError: '1,3'
Run Code Online (Sandbox Code Playgroud)
旧式格式有自己的问题(由于'%'字符):
>>> import config
>>> regex = '([0-9]{1,3}[%])([%s]?)' % (config.SERIES)
unsupported format character ']' (0x5d) at index 14
Run Code Online (Sandbox Code Playgroud)
我无法在正则表达式中运行转义字符.有关如何做到这一点的任何想法?
谢谢,
麦克风
Ray*_*Ray 10
您可以使用%%旧式格式插入百分号:
'([0-9]{1,3}[%%])([%s]?)' % (config.SERIES)
Run Code Online (Sandbox Code Playgroud)
类似地,对于新式格式,将大括号加倍:
'([0-9]{{1,3}}[%])([{0}]?)'.format(config.SERIES)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4698 次 |
| 最近记录: |