Python|检查字符串中是否存在子字符串
让我们解决这个一般问题,即查找特定字符串是否以不同方式存在于较大字符串中。这是每个程序员一生中至少遇到一次的一种非常常见的问题。本文提供了各种技术来解决它。
方法一:使用in
运算符in
运算符是检查子字符串的最通用、最快的方法, Python中in
运算符的强大功能众所周知,并用于整个语言的许多操作中。
# Python 3 code to demonstrate
# checking substring in string
# using in operator
# initializing string
test_str = "GeeksforGeeks"
# using in to test
# for substring
print ("Does for exists in GeeksforGeeks ? : ")
if "for" in test_str :
print ("Yes, String found")
else :
print ("No, String not found")
输出 :
Does for exists in GeeksforGeeks ? :
Yes, String found
方法 2:使用str.find()
str.find()方法通常用于获取字符串出现的最低索引,但如果字符串不存在,则返回 -1,因此如果任何值返回 >= 0,则字符串存在,否则不存在。
# Python 3 code to demonstrate
# checking substring in string
# using str.find()
# initializing string
test_str = "GeeksforGeeks"
# using str.find() to test
# for substring
res = test_str.find("for")
if res >= 0:
print ("for is present in GeeksforGeeks")
else :
print ("for is not present in GeeksforGeeks")
输出 :
for is present in GeeksforGeeks
方法 3:使用str.index()
此方法可用于执行类似的任务,但与 str.find() 一样,它不返回值,但如果字符串不存在则返回 ValueError,因此捕获异常是检查子字符串中字符串的方法。
# Python 3 code to demonstrate
# checking substring in string
# using str.index()
# initializing string
test_str = "GeeksforGeeks"
# using str.index() to test
# for substring
try :
res = test_str.index("forg")
print ("forg exists in GeeksforGeeks")
except :
print ("forg does not exists in GeeksforGeeks")
输出 :
forg does not exists in GeeksforGeeks
方法 4:使用operator.contains()
这是一种鲜为人知的检查字符串中的子字符串的方法,这种方法在完成检查字符串中的字符串的任务中也很有效。
# Python 3 code to demonstrate
# checking substring in string
# using operator.contains()
import operator
# initializing string
test_str = "GeeksforGeeks"
# using operator.contains() to test
# for substring
if operator.contains(test_str, "for"):
print ("for is present in GeeksforGeeks")
else :
print ("for is not present in GeeksforGeeks")
输出 :
for is present in GeeksforGeeks