簡體   English   中英

python中的正則表達式獲取URL或路徑中文件擴展名的最后一次出現

[英]Regular expression in python to get the last occurence of a file extension in a URL or path

給定一個長 url 或路徑,我如何獲取其中的最后一個文件擴展名。 例如考慮這兩個字符串。

url = 'https://image.freepik.com/free-vector/vector-chickens-full-emotions_75487-787.jpg?x=2'
path = './image.freepik.com/free-vector/vector-chickens-full-emotions_75487-787.abc.jpg'

最后一個擴展名是jpg並在最后一個. 在以下非字母數字或字符串結尾之前。

有與我類似的問題,但我找不到完全匹配的問題。

re.search('\.(\w+)(?!.*\.)', url).group(1)

使用負前瞻搜索后面沒有點的匹配項

FILENAMES 和 URLS 的解析規則是不同的 - 所以不要用一個 REGEX 來做到這一點,它不簡單,不值得你花時間。

取而代之的是,使某種形式的測試-以確定你正在尋找什么類型的對象,即:這並非該URL。 這可能很簡單:它是否以 http:// 開頭,那么它是一個 URL.. 如果不是......它不是一個 URL

然后將特定規則應用於特定類型。

始終使用標准工具,他們通常已經弄清楚了您會忘記的極端情況或事情。

URL 解析器: https : //docs.python.org/3/library/urllib.parse.html

然后,對於文件使用:標准 python 庫中的 os.path.splitext(path): https : //docs.python.org/3/library/os.path.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM