我想用單個空字符替換所有空字符。我試過這個:
import re
fin = open("toutput_des.txt", "r")
fout = open("toutput2_des.txt", "w")
for line in fin:
fout.write(re.sub('\s ',' ',line))
fin.close()
fout.close()
它有效,但它也用一個空字符替換了每行末尾的“換行”字符。如果我想排除“新行”,我該如何修改正則運算式?我也試過 '\s \b' 但它洗掉了檔案的所有內容。
uj5u.com熱心網友回復:
您可以在替換后簡單地附加換行符。
但是,您在這里不需要正則運算式,您可以使用
for line in fin:
fout.write(' '.join(line.split()) '\n')
請注意,line.split()使用任何空格分割字串,同時洗掉前導和尾隨空格,并' '.join(...)使用單個空格將專案連接回來。
如果您需要使用正則運算式解決方案,那么您可以減去\n:\s
re.sub(r'[^\S\n] ', ' ', line)
正[^\S\n] 則運算式匹配除非空白字符和換行字符之外的任何一個或多個字符,即它匹配除換行字符之外的任何空白字符。您可能還想要.lstrip()結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/458916.html
