num = 0
def regex(m):
num = num + 1
return '<iframe src="%s%s%s">' % (m.group(1), '/number/', num)
re.sub('<iframe src="(\w+)">', regex, source)
来源是
<p>hogehogehello<br />aaaa</p><iframe src~~><div><strong><h1>aa</h1></strong></div><iframe~~~><iframe~~~><h2>aaaaaa</h2><iframe~~~>
结果
UnboundLocalError: local variable 'num' referenced before assignment
理想
<iframe src="https://youtube.com/hogehgoe/number/1">
<iframe src="https://youtube.com/hogehgoe/number/2">
<iframe src="https://youtube.com/hogehgoe/number/3">
<iframe src="https://youtube.com/hogehgoe/number/4">
<iframe src="https://youtube.com/hogehgoe/number/5">
源理想是
<p>hogehogehello<br />aaaa</p>
<iframe src~~/1><div><strong><h1>aa</h1></strong></div>
<iframe~~~/2>
<iframe~~~/3><h2>aaaaaa</h2>
<iframe~~~/4>
如果可能,我不想使用finditer
。我想用尽可能短的代码完成。
我尝试过使用global num。但错误语法错误:名称'bum'在全局声明之前被分配。