首页 >后端开发 >Python教程 >Python如何判断一个字符串是否包含指定子字符串

Python如何判断一个字符串是否包含指定子字符串

青灯夜游
青灯夜游原创
2018-11-17 14:14:1161674浏览

Python如何判断一个字符串是否包含指定字符串?本篇文章就给大家介绍Python判断一个字符串是否包含指定子串的3种方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

程序员在字符串上使用的最常见的操作之一是判断字符串是否包含指定子字符串。而Python以非常易于阅读和易于实现的方式就可以实现此功能,有3种方法可以做到这一点。

第一:使用in运算符

最简单的方法是通过python的 in 运算符。

in取两个“参数”,一个在左边,一个在右边,如果左参数包含在右参数中,则返回true。

我们来看看这个例子:

>>> str = "Messi is the best soccer player"
>>> result = "soccer" in str
>>> print result
True
>>> result = "football" in str
>>> print result
False

如你所见,当字符串中存在子字符串时,in运算符返回True。

否则,它返回false。

这种方法非常简单,干净,可读和惯用。

第二:使用string模块的find()/rfind()方法

你也可以使用的另一种方法是字符串的find方法。

与被计算为布尔值的in运算符不同,find方法返回一个整数。

如果子字符串存在,则此整数本质上是子字符串开头的索引,否则返回-1。

让我们看看find方法的实际应用。

>>> import string
>>> str = "Messi is the best soccer player"
>>> str.find("soccer")
18
>>> str.rfind("Ronaldo")
-1
>>> str.find("Messi")
0

这个方法的一个很厉害的地方:可以指定一个开始索引和一个结束索引来限制你的搜索范围。

例如:

>>> import string
>>> str = "Messi is the best soccer player"
>>> str.find("soccer", 5, 25)
18
>>> str.find("Messi", 5, 25)
-1

注意:判断“Messi”时,如果返回-1,因为你将搜索限制在索引5和25之间的字符串了。

第三:使用string模块的index()/rindex()方法 

index()/rindex()方法跟find()/rfind()方法相似,只不过在找不到子字符串的时候会报一个ValueError的异常。

import string
def find_string(s,t):    
    try:
        string.index(s,t)        
        return True    
    except(ValueError): 
        return False

s='nihao,shijie'
t='nihao'
result = find_string(s,t)
print result  #True

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。

以上是Python如何判断一个字符串是否包含指定子字符串的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn