Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的正则表达式,以获取URL或路径中最后出现的文件扩展名_Python_Regex - Fatal编程技术网

python中的正则表达式,以获取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或路径,如何获取其中的最后一个文件扩展名。例如,考虑这两个字符串。

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导入路径
的位置起作用。