为了账号安全,请及时绑定邮箱和手机立即绑定

如何在python中获取字符串x之后的所有内容

如何在python中获取字符串x之后的所有内容

RISEBY 2023-03-30 10:34:23
我有一个字符串:s3://tester/test.pdf我想排除s3://tester/所以即使我有s3://tester/folder/anotherone/test.pdf我得到整个路径之后s3://tester/我曾尝试使用拆分和分区方法,但我似乎无法获得它。目前正在尝试:string.partition('/')[3]但是我收到一条错误消息,说它超出了索引。编辑:我应该指定桶的名称不会总是相同的,所以我想确保它只在第 3 个“/”之后抓取任何东西。
查看完整描述

4 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

您可以使用str.split():


path = 's3://tester/test.pdf'

print(path.split('/', 3)[-1])

输出:


test.pdf

更新:使用正则表达式:


import re

path = 's3://tester/test.pdf'

print(re.split('/',path,3)[-1])

输出:


test.pdf


查看完整回答
反对 回复 2023-03-30
?
交互式爱情

TA贡献1712条经验 获得超3个赞

你试过吗.replace?


你可以这样做:


string = "s3://tester/test.pdf"

string = string.replace("s3://tester/", "")

print(string)

这将替换"s3://tester/"为空字符串""


或者,您可以使用.split而不是.partition


您也可以尝试:


string = "s3://tester/test.pdf"

string = "/".join(string.split("/")[3:])

print(string)


查看完整回答
反对 回复 2023-03-30
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

回答“如何在 python 中获取 x 个字符后的所有内容”

string[x:]


查看完整回答
反对 回复 2023-03-30
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

请查看更新

原始 使用内置re模块。

p = re.search(r'(?<=s3:\/\/tester\/).+', s).group()

该模式使用后视来跳过您希望忽略的部分并匹配它后面的任何和所有字符,直到整个字符串被消耗,将匹配的组返回给变量以供进一步处理p

此代码适用于遵循s3://tester/您在问题中提供的显式模式的任何长度路径。

更新

刚看到更新

在这件事上弄错了,我的错。

re无论 S3 变量如何,下面的方法都应该有效,返回/字符串中第三个之后的所有内容。

p = ''.join(re.findall(r'\/[^\/]+', s)[1:])[1:]


查看完整回答
反对 回复 2023-03-30
  • 4 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信