以下是不同的檔案和應該如下所示的輸出:
- abc.csv - 正確
- abc.csv.gz - 失敗
- abc.csv.csv - 失敗
- abc.def.csv - 正確
當前的正則運算式看起來像.*[.]csv$通過案例 1 和 2,但不通過案例 3 和 4。我嘗試使用 {} 和 \B 僅允許 1 個擴展名,但無法正確擴展。
uj5u.com熱心網友回復:
正如評論中所說,filename.endswith('.csv')在我看來,這是最 Pythonic 的選項。
也就是說,如果你想使用正則運算式,你可以使用re.match('.*(?<!\.csv)(\.csv)$', s)或re.fullmatch('.*(?<!\.csv)(\.csv)', s)
s = 'abc.csv.csv'
re.match('.*(?<!\.csv)(\.csv)$', s)
# no match
s = 'abc.def.csv'
re.match('.*(?<!\.csv)(\.csv)$', s)
#<re.Match object; span=(0, 11), match='abc.def.csv'>
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/460135.html
上一篇:匹配\w:占位符之間的所有文本
