Python如何截取字符串的字符

2025-10-01 03:51:08

1、固定长度字符串的字符截取,示例1:”\\aaa\b\c”,要获取”aaa”这个值.

只需取第2至第5位字符就行,输入代码:

v_str=r"\\aaa\b\c"

v_res=v_str[2:5]

print('获取到的字符是:'+v_res)

Python如何截取字符串的字符

2、不固定长度的字符串截取,示例2:在名字不固定的路径”\\abcdefg\hi\j\k”里,截取主目录”abcdefg”的值(注:主目录可能是”abc”,也可能是”abcd”).

在一个不固定的变量里找字符,通常的思路是找到固定的东西,示例2里固定字符为”\\...\”.

我们先找出固定的字符,第一个固定的是主目录前面的”\\”,我们先把前面两个字符排除,录入代码:

v_str=r"\\abcdefg\hi\j\k"

v_res=v_str[2:]

print('获取到的字符是:'+v_res)

Python如何截取字符串的字符

3、这个v_str变量里面固定的第二个字符是”\”,再试着用find把它找出来:

v_str=r"\\abcdefg\hi\j\k"

v_res=v_str[2:v_str.find("\\")]

print('获取到的字符是:'+v_res)

Python如何截取字符串的字符

4、结果很明显失败了.这是因为find每次搜索都是从第一个字符开始的.如果前面两个字符不是”\\”,而是”//”,我们想要的结果已经出来了:

v_str=r"//abcdefg\hi\j\k"

v_res=v_str[2:v_str.find("\\")]

print('获取到的字符是:'+v_res)

Python如何截取字符串的字符

5、既然如此,我们借2个位搜索一下:

v_str=r"\\abcdefg\hi\j\k"

v_res=v_str[2:v_str[2:].find("\\")]

print('获取到的字符是:'+v_res)

Python如何截取字符串的字符

6、结果已经很接近了,只是后面少了2个字符.再把借来的位还回去,得到最终的结果:

v_str=r"\\abcdefg\hi\j\k"

v_res=v_str[2:v_str[2:].find("\\")+2]

print('获取到的字符是:'+v_res)

Python如何截取字符串的字符

7、好了,这种随机的不固定长度的字符串截取方法已经知道了.再梳理一下思路:

首先,我们知道固定长度的字符截取方法:

v_str=r"\\abcdefg\hi\j\k"

v_res=v_str[2:9]

print('获取到的字符是:'+v_res)

第一个数字2我已经知道,关键是第二个数字9怎么算出来?我们知道可通过find找到字符的索引值,在示例2里,固定的字符”\”有好多,排除掉前面两个后,得到第二个”\”的索引值:

v_str=r"\\abcdefg\hi\j\k"

print(v_str[2:].find("\\"))

但是,这个数字7是在”abcdefg\hi\j\k”的索引值,完整的字符串应该是”\\abcdefg\hi\j\k”,所以我们还得+2.

v_str=r"\\abcdefg\hi\j\k"

print(v_str[2:].find("\\")+2)

最后整合一下代码,结果就出来了:

v_str=r"\\abcdefg\hi\j\k"

v_res=v_str[2:v_str[2:].find("\\")+2]

print('获取到的字符是:'+v_res)

Python如何截取字符串的字符

Python如何截取字符串的字符

Python如何截取字符串的字符

Python如何截取字符串的字符

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢