说我有以下输入字符串:
s = ''' not this "not this either", "but {this}"'''
我想将其替换为:
''' not this "not this either", f"but {this}"'''
规则是,仅当开放双引号和相应的封闭双引号包含一对f
和{
时,我才在开放双引号前面添加}
。
目前我只能做
p = re.compile('".*?"')
matches = p.findall(s)
for match in matches:
if '{' in match and '{' in match:
s = s.replace(match, 'f'+match)
我想知道是否有更清洁的方法来做到这一点。
答案 0 :(得分:0)
您可以使用正向前瞻:
s = ''' not this "not this either", "but {this}"'''
p = re.compile('(?="[A-Za-z ]+?{\w+}")')
new_s = p.sub('f',s)
print (new_s)
结果:
not this "not this either", f"but {this}"