我想從給定文件中刪除以*開頭的所有行。因此,例如,以下內容:正則表達式+ Python - 刪除所有以*開頭的行
* This needs to be gone
But this line should stay
*remove
* this too
End
應該產生這樣的:
But this line should stay
End
我最終需要做的是以下幾點:
- 刪除括號內的所有文字和括號(包括括號/括號),
- 如上所述,刪除li以''開始。
到目前爲止,我能夠通過以下方式解決#1問題:re.sub(r'[.?]|(.*?)', '', fileString)
。我試了#2,但最後總是刪除的東西幾件事情我不想
解決方案1(無正則表達式)
>>> f = open('path/to/file.txt', 'r')
>>> [n for n in f.readlines() if not n.startswith('*')]
方案2(正則表達式)
>>> s = re.sub(r'(?m)^\*.*\n?', '', s)
謝謝大家的幫助。
那麼你到目前爲止提出了什麼? – kaveman
我最終需要做的是: 1 - 刪除括號和括號內的所有文本(括號/括號括起來),2 - 如上所述,刪除以\ *開頭的行。到目前爲止,我能夠通過以下方式解決#1問題:re.sub(r'\ [。*?\] | \(。*?\)','',fileString)。我爲#2嘗試了幾件事,但總是最終刪除了我不想要的東西。 –
我已將其移至您的問題中,以便閱讀。對於簡單的東西,你可以避免使用正則表達式,並使用內置str方法,如:'if not line.lstrip()。startswith('*')' –