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'