我有一个子字符串:
substring = "please help me out"
我有另一个字符串:
string = "please help me out so that I could solve this"
如何使用Python查找substring
是string
的子集?
答案 0 :(得分:166)
in
:substring in string
:
>>> substring = "please help me out"
>>> string = "please help me out so that I could solve this"
>>> substring in string
True
答案 1 :(得分:20)
foo = "blahblahblah"
bar = "somethingblahblahblahmeep"
if foo in bar:
# do something
(顺便说一句 - 尝试不命名变量string
,因为有一个同名的Python标准库。如果你在一个大型项目中这样做,你可能会混淆人们,所以避免这样的冲突是进入的好习惯。)
答案 2 :(得分:13)
如果您要寻找的不仅仅是真/假,那么您最适合使用re模块,例如:
import re
search="please help me out"
fullstring="please help me out so that I could solve this"
s = re.search(search,fullstring)
print(s.group())
s.group()
会返回字符串“请帮帮我”。
答案 3 :(得分:9)
人们在评论中提到了string.find()
,string.index()
和string.indexOf()
,我在这里总结了它们(根据Python Documentation):
首先,没有string.indexOf()
方法。 Deviljho发布的链接显示这是一个JavaScript函数。
其次string.find()
和string.index()
实际返回子字符串的索引。唯一的区别是他们如何处理未找到子字符串的情况:string.find()
返回-1
而string.index()
提出ValueError
。
答案 4 :(得分:9)
我想如果你正在考虑如何在技术面试时做这个,他们不希望你使用Python的内置函数in
或find
,这是我想添加的。可怕,但确实发生了:
string = "Samantha"
word = "man"
def find_sub_string(word, string):
len_word = len(word) #returns 3
for i in range(len(string)-1):
if string[i: i + len_word] == word:
return True
else:
return False
答案 5 :(得分:5)
您也可以尝试使用find()方法。它确定字符串str是出现在字符串中还是出现在字符串的子字符串中。
str1 = "please help me out so that I could solve this"
str2 = "please help me out"
if (str1.find(str2)>=0):
print("True")
else:
print ("False")
答案 6 :(得分:1)
In [7]: substring = "please help me out"
In [8]: string = "please help me out so that I could solve this"
In [9]: substring in string
Out[9]: True
答案 7 :(得分:1)
def find_substring():
s = 'bobobnnnnbobmmmbosssbob'
cnt = 0
for i in range(len(s)):
if s[i:i+3] == 'bob':
cnt += 1
print 'bob found: ' + str(cnt)
return cnt
def main():
print(find_substring())
main()
答案 8 :(得分:0)
也可以使用此方法
if substring in string:
print(string + '\n Yes located at:'.format(string.find(substring)))
答案 9 :(得分:0)