python中的正则表达式,以获取URL或路径中最后出现的文件扩展名
给定一个长url或路径,如何获取其中的最后一个文件扩展名。例如,考虑这两个字符串。python中的正则表达式,以获取URL或路径中最后出现的文件扩展名,python,regex,Python,Regex,给定一个长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,位于最后一个之后,位于以
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)。组(1)
使用负向前看搜索不后跟点的匹配项。re.search('\.(\w+)(..*\.),url)。组(1)
使用负前瞻搜索不后跟点的匹配项解析规则对于文件名和URL是不同的-因此不要使用单个正则表达式来完成此操作,这既不简单,也不值得花费时间 取而代之的是,进行某种类型的测试,以确定您正在查看的对象的类型,即:这是或不是URL。这可能很简单:如果它以http://开头,那么它就是一个URL。。如果不是。。。它不是一个URL 然后将特定规则应用于特定类型 总是使用标准的工具,他们通常已经解决了一些你会忘记的问题 URL解析器: 然后,对于文件使用:os.path.splitext(path)
在标准python库中:解析规则对于文件名和URL是不同的-所以不要使用单个正则表达式来实现这一点,这并不简单,也不值得您花费时间 取而代之的是,进行某种类型的测试,以确定您正在查看的对象的类型,即:这是或不是URL。这可能很简单:如果它以http://开头,那么它就是一个URL。。如果不是。。。它不是一个URL 然后将特定规则应用于特定类型 总是使用标准的工具,他们通常已经解决了一些你会忘记的问题 URL解析器: 然后,对于文件使用:os.path.splitext(path)
在标准python库中:那么,在上面的示例中,您正在寻找.jpg或.abc(或abc)?我可以为您的所有正则表达式需求推荐。把你的绳子放在那里,看看你的绳子是否能与之匹配。不要害怕尝试。因此,在上面的示例中,您正在寻找.jpg或.abc(或abc)?我可以为您的所有正则表达式需求推荐。把你的绳子放在那里,看看你的绳子是否能与之匹配。不要害怕,谢谢。开发您的答案时,我们得到的路径是
path(path)。后缀
在我们从pathlib导入路径获得的地方起作用,对于路径的url(urlparse(url.path)。后缀
在我们从urllib.parse导入urlparse
和从pathlib导入路径获得的地方起作用。谢谢。开发您的答案时,我们得到的路径是path(path)。后缀
在我们从pathlib导入路径的位置起作用,对于路径的url(urlparse(url.path)。后缀
在我们从urllib.parse导入urlparse
和从pathlib导入路径的位置起作用。