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

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

Python|检查给定字符串中是否存在子字符串

给定两个字符串,检查 s1 是否存在于 s2 中。

例子:

Input : s1 = geeks s2=geeks for geeks
Output : yes

Input : s1 = geek s2=geeks for geeks
Output : yes

我们可以迭代地检查每个单词,但是Python为我们提供了一个内置函数find(),它检查字符串中是否存在子字符串,这在一行中完成。
find()函数如果没有找到则返回-1,否则返回第一次出现,所以使用这个函数可以解决这个问题。
方法一:使用用户自定义函数。

# function to check if small string is 
# there in big string
def check(string, sub_str):
    if (string.find(sub_str) == -1):
        print("NO")
    else:
        print("YES")
            
# driver code
string = "geeks for geeks"
sub_str ="geek"
check(string, sub_str)

输出:

YES          

方法2:使用“count()”方法:-

def check(s2, s1): 
    if (s2.count(s1)>0):     
        print("YES") 
    else: 
        print("NO") 
              
s2 = "A geek in need is a geek indeed"
s1 ="geek"
check(s2, s1) 

输出:

YES          

方法三:使用正则表达式
RegEx 可用于检查字符串是否包含指定的搜索模式。 Python有一个名为re的内置包,可用于处理正则表达式。

# When you have imported the re module, you can start using regular expressions.
import re
  
# Take input from users
MyString1 =  "A geek in need is a geek indeed"
MyString2 ="geek"
  
# re.search() returns a Match object if there is a match anywhere in the string
if re.search( MyString2, MyString1 ):
    print("YES,string '{0}' is present in string '{1}' " .format(MyString2,MyString1))
else:
    print("NO,string '{0}' is not present in string {1} " .format(MyString2, MyString1) )

输出:

YES,string 'geek' is present in string 'A geek in need is a geek indeed'