我必须以这种方式替换文字:
Some data la-la-la [image=test.png] next data...
Some data la-la-la 123 [image=test2.png]
并将其替换为:
Some data la-la-la test.png next data...
Some data la-la-la 123 test2.png
我尝试使用python中的re.sub方法:
for foo in re.search('(\[image=(.*)\])', text):
text = re.sub("(?<=\[image=)*(?=\])", foo, text)
但这不起作用,为什么?
答案 0 :(得分:4)
说真的,您是看过regex documentation还是至少是howto?
.search()
返回一个匹配对象。你不能迭代它。.sub()
一次替换字符串中的所有匹配项。你无法逐一替换。一个想法:
import re
text = """Some data la-la-la [image=test.png] next data...
Some data la-la-la 123 [image=test2.png]"""
text = re.sub(r'\[image\=([^\]]+)\]', r'\1', text)
print text
结果:
Some data la-la-la test.png next data...
Some data la-la-la 123 test2.png