python - 删除最后一个正斜杠之前的部分字符串

标签 python regex string replace

我目前正在开发的程序从网站检索 URL 并将它们放入列表中。我要获取的是 URL 的最后一部分。

因此,如果我的 URL 列表中的第一个元素是 "https://docs.python.org/3.4/tutorial/interpreter.html" 我想删除 之前的所有内容>“解释器.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'

并使用正则表达式

>>> re.search(r'(.*)/(.*)',s).group(2)
'interpreter.html'

然后匹配位于最后一个 / 和 String 末尾之间的第二组。这是 RegEx 中贪婪技术的贪婪用法。

Regular expression visualization

Debuggex Demo

小提示 - 您的代码中 link.rpartition('//')[-1] 的问题是您试图匹配 // 而不是 /。因此,删除多余的 /,如 link.rpartition('/')[-1] 中所示。

关于python - 删除最后一个正斜杠之前的部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29657384/

相关文章:

jquery - 正则表达式允许字符串在输入开头确定

regex - 从大文本文件中获取链接列表

c# - 将所有 String 元素从 List 连接到 String 的最快方法

python - Newton Raphson 法方程求解器算法

python - JSON 架构 : validate a number-or-null value

python - 将列与 pandas 中的常量值相乘。类型错误

Python 将 Tkinter 脚本转换为 exe 应用程序

regex - 如何使用 sed 替换配置文件的变量?

.net - String.Replace 不会替换所有匹配项

java - 如何比较列表和字符串数组(Java)?