Python字符串查找子串方法

原文链接:http://www.juzicode.com/archives/3902

1、in关键字判断子串是否在字符串中

使用in关键字可以用来判断子串是否在字符串中,如果在表达式的值True,反之为False:

#juzicode.com/vx:桔子code
a = 'juzi'
b = 'www.juzicode.com'
c = '桔子'
if a in b:
    print('子串 %s 在 字符串 %s 中'%(a,b))
else:
    print('子串 %s 不在 字符串 %s 中'%(a,b))
if c in b:
    print('子串 %s 在 字符串 %s 中'%(c,b))
else:
    print('子串 %s 不在 字符串 %s 中'%(c,b))
==========运行结果:
子串 juzi 在 字符串 www.juzicode.com 中 
子串 桔子 不在 字符串 www.juzicode.com

2、index()方法返回子串位置

字符串的index方法可以用来返回子串在字符串中的位置,如果不在字符串中则会抛异常:


#juzicode.com/vx:桔子code
a = 'juzi'
b = 'www.juzicode.com'
c = '桔子'
posa=b.index(a)
print('子串 %s 在 字符串 %s 中的位置: %d'%(a,b,posa))
posc=b.index(c)
print('子串 %s 在 字符串 %s 中的位置: %d'%(c,b,posc))
子串 juzi 在 字符串 www.juzicode.com 中的位置: 4 

--------------------------------------------------------------------------- ValueError                                Traceback (most recent call last) <ipython-input-7-7984489f8c22> in <module>       
5 posa=b.index(a)       
6 print('子串 %s 在 字符串 %s 中的位置: %d'%(a,b,posa)) ----> 
7 posc=b.index(c)       
8 print('子串 %s 在 字符串 %s 中的位置: %d'%(c,b,posc)) ValueError: substring not found

因为子串不在字符串中,使用字符串的index()会抛异常,为了避免抛异常,可以先使用in关键字判断子串是否在字符串中,如果在字符串中再提取位置:

#juzicode.com/vx:桔子code
a = 'juzi'
b = 'www.juzicode.com'
c = '桔子'
if a in b:
    posa=b.index(a)
    print('子串 %s 在 字符串 %s 中的位置: %d'%(a,b,posa))
else:
    print('子串 %s 不在 字符串 %s 中'%(a,b))
if c in b:
    posc=b.index(c)
    print('子串 %s 在 字符串 %s 中的位置: %d'%(c,b,posc))
else:
    print('子串 %s 不在 字符串 %s 中'%(c,b))
子串 juzi 在 字符串 www.juzicode.com 中的位置: 4 
子串 桔子 不在 字符串 www.juzicode.com

3、find()方法返回子串位置

字符串的find()方法可以返回子串在字符串中的位置,如果不在字符串中则返回-1:

#juzicode.com/vx:桔子code
a = 'juzi'
b = 'www.juzicode.com'
c = '桔子'
posa=b.find(a)
print('子串 %s 在 字符串 %s 中的位置: %d'%(a,b,posa))
posc=b.find(c)
print('子串 %s 在 字符串 %s 中的位置: %d'%(c,b,posc))
==========运行结果:
子串 juzi 在 字符串 www.juzicode.com 中的位置: 4 
子串 桔子 在 字符串 www.juzicode.com 中的位置: -1

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注