我当前正在使用的程序从网站检索URL,并将其放入列表中。我想得到的是URL的最后一部分。
因此,如果我的网址列表中的第一个元素是"https://docs.python.org/3.4/tutorial/interpreter.html"
我要删除之前的所有内容"interpreter.html"
。
是否可以使用函数,库或正则表达式来实现这一目标?我看过其他Stack Overflow帖子,但是解决方案似乎不起作用。
这是我的几种尝试中的两种:
for link in link_list:
file_names.append(link.replace('/[^/]*$',''))
print(file_names)
和
for link in link_list:
file_names.append(link.rpartition('//')[-1])
print(file_names)
看一看str.rsplit
。
>>> s = 'https://docs.python.org/3.4/tutorial/interpreter.html'
>>> s.rsplit('/',1)
['https://docs.python.org/3.4/tutorial', 'interpreter.html']
>>> s.rsplit('/',1)[1]
'interpreter.html'
并使用RegEx
>>> re.search(r'(.*)/(.*)',s).group(2)
'interpreter.html'
然后匹配位于/
字符串的最后和结尾之间的第二组。这是RegEx中贪婪技术的贪婪用法。
小提示-link.rpartition('//')[-1]
代码中的问题是您尝试匹配//
而不匹配/
。因此,删除多余的/
作为link.rpartition('/')[-1]
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句