📌  相关文章
📜  Python|检查字符串中是否存在子字符串

📅  最后修改于: 2022-05-13 01:55:36.900000             🧑  作者: Mango

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