如何从给定的字符串中获取子字符串?

How to grab a substring from a given string?

提问人:mac 提问时间:7/22/2023 最后编辑:wjandreamac 更新时间:7/22/2023 访问量:68

问:

基本上我有以下字符串,我想从中获取一个子字符串。

input: RT4_MANGO_AF
output: MANGO

input:  RT4_DF5_WE_APPLE_AF 
output: APPLE 

input: TF_WE_BANANA_AF
output: BANANA

input: RT4_DF5_ORANGE_AF
output: ORANGE

请注意,这里的提示是,最后 3 个字符将保留,我想在最后一个但一个符号之前和之后抓取子字符串。_AF_AF_

我有以下代码可以做同样的事情,但我觉得它不是最佳的。有没有办法优化这段代码?或者我可以得到优化的代码吗?

sd = 'ER5_WE_APPLE_AF'
m = sd[:-3]
for i in range(len(m)):
    if m[i] == "_":
        si = i
    else:
        continue
m = m[si+1:]
print(m)
python string slice 字符串操作

评论

9赞 Tim Roberts 7/22/2023
print(sd.split('_')[-2])会做到的。在下划线上将字符串拆分为单词,然后抓住倒数第二个。
3赞 InSync 7/22/2023
那个,或者.sd.rsplit('_', 2)[-2]

答:

3赞 aditpatel 7/22/2023 #1

简单地写作就可以了。我们可以这样做,因为字符串的末尾将始终包含“_AF”,因此我们可以获取之前的子字符串。print(sd.split('_')[-2])