※ 引述《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