※ 引述《ntuleo (里欧)》之铭言:
: x2 = re.compile("(?<=\n)\n*(?=\n)")
: content = re.sub(x2,"zzz",content)
: \\以上想把空白行取代成zzz
: 结果:
: zzz
: zzz
: 只有前后各一个被取代了,中间失效
: 请问为什么会这样呢? 有什么更好的办法取代空白行吗?
把"*(?=\n)"的部份去掉应该就OK了?
以下测试程式码,python 3.4 win7 x64 eclipse pydev
=========================================
import re
x2 = re.compile("(?<=\n)\n")
str_in = "begin\n\n\n\nend"
str_out = re.sub(x2, "zzz\n", str_in)
print(str_in) # 3 empty lines
print(str_out) # 3 zzz's
=========================================
输出:
begin
end
begin
zzz
zzz
zzz
end