我正在读取一个文件,我需要替换某些空标签([[Image:]])。
问题是每个替换都必须是唯一的。
这是代码:
import re
import codecs
re_imagematch = re.compile('(\[\[Image:([^\]]+)?\]\])')
wf = codecs.open('converted.wiki', "r", "utf-8")
wikilines = wf.readlines()
wf.close()
imgidx = 0
for i in range(0,len(wikilines)):
if re_imagematch.search(wikilines[i]):
print 'MATCH #######################################################'
print wikilines[i]
wikilines[i] = re_imagematch.sub('[[Image:%s_%s.%s]]' % ('outname', imgidx, 'extension'), wikilines[i])
print wikilines[i]
imgidx += 1
这不起作用,因为一行中可能有许多标签:
这是输入文件。
[[Image:]][[Image:]]
[[Image:]]
输出应该是这样的:
[[Image:outname_0.extension]][Image:outname_1.extension]]
[[Image:outname_2.extension]]
这就是它目前的样子ö
[[Image:outname_0.extension]][Image:outname_0.extension]]
[[Image:outname_1.extension]]
我尝试使用替换函数,问题是该函数仅使用 re.sub 每行调用一次。