我有以下正则表达式来解析括号内的访问字符串并删除它们:
>>> a = 'a[b]cdef[g ]hi[ j]klmno[ p ]'
>>> re.sub(r'\[\s?(.*?)\s?\]',r'\1',a)
'abcdefghijklmnop'
但我想做的是让括号中的内容以字典为目标。假设我有以下字典:
d = {'b':2,'g':7,'j':10,'p':16}
当我运行我想要的正则表达式时,它应该打印字符串:'a2cdef7hi10klmno16'
但是,我不能简单地拥有sub
be的替换部分,d['\1']
因为会有一个KeyError: '\x01'
.
是否有任何简单的方法可以用响应正则表达式中的捕获的字典替换模式?