Python新手求助,如何查找一个包含指定字符的字符串
发布网友
发布时间:2022-04-22 04:45
我来回答
共1个回答
热心网友
时间:2023-08-05 14:28
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总结: