我期待在這裏給出的教程: -如何編寫排除某些文件後綴的正則表達式?
https://docs.python.org/2/howto/regex.html#lookahead-assertions
我想排除在.pqr.gz結尾的文件,我不太清楚該怎麼做。
如預期的行爲是: -
f1.gz => succeed
f1.abc.pqr => succeed
f1.pqr.gz => fail
f1.abc.gz => succeed
我能想出的最好的正則表達式是: -
r'.*[.](?=[^.]*[.][^.]*)(?!pqr[.]gz$)[^.]*[.][^.]*$'
這不包括在.pqr.gz但沒有按結尾的文件」例如,允許只有f1.gz的文件(即上面我寫的第一種情況)。
有關如何改進這一點的任何想法?
編輯: - 有更好的方法來做到這一點(例如,使用string.endswith
),但我很好奇怎麼純粹做一個正則表達式作爲一個練習。
你不應該使用正則表達式來檢查後綴。 –
'。*(?<!\。pqr \ .gz)$' –
@Rawing有效。你可以把它寫成答案(希望有解釋),我會接受它。 – owagh