我試圖刪除apache配置文件中的一段文本,特別是虛擬主機。我需要刪除虛擬主機容器,包括< VirtualHost>標記。
使用python刪除文件中的一段文字
Stuff
<VirtualHost asdfalsdkf:*>
asldkfjasl;dkfjasldkfj
asdfljasldjf;laksdfj
a;lsdkfj;laksjdfas
asldkfjasldfkj
3495034ijfgdl9)_*)(%$
more stuff
</VirtualHost>
stuff
到目前爲止,我試圖將其正規化。但它不會更改文件。我實際上試圖更新文件並刪除代碼。
這是我迄今爲止沒有工作。除非指定re.DOTALL
for line in fileinput.input('/etc/apache2/apache2.conf.replace',inplace=True):
sys.stdout.write(re.sub(r'<VirtualHost.*?>.*?</VirtualHost>','',line))
令牌評論(有人必須說:) - python提供了一堆標記解析器,它們更適合於p解析html/xml。嘗試使用正則表達式解析標記通常不可取。 – mgilson
從我所看到的,這不是標記,它看起來像一個Apache配置文件。它們使用類似的語法,但它不是有效的標記,例如,當使用'
javex