我有以下正则表达式来解析括号内的访问字符串并将其删除:
>>> a = 'a[b]cdef[g ]hi[ j]klmno[ p ]'
>>> re.sub(r'\[\s?(.*?)\s?\]',r'\1',a)
'abcdefghijklmnop'
但我想做的是把括号里的东西作为字典的目标。假设我有以下字典:
^{pr2}$当我运行所需的regex时,它应该打印字符串:'a2cdef7hi10klmno16'
但是,我不能简单地让sub
的替换部分是d['\1']
,因为会有一个KeyError: '\x01'
。在
有没有简单的方法可以用响应regex中捕获的字典来替换模式?
如果字典的值也是字符串,那么应该先替换字符,然后去掉括号。如果没有,只需将d[i]替换为str(d[i])。在
Python regex replace函数可以使用任意替换函数替换为:
您可以使用^{} ,假设
a
不包含格式为{...}
的子字符串:或者您可以使用
^{pr2}$lambda
:lambda
解决方案似乎要快得多:相关问题 更多 >
编程相关推荐