如何确定子字符串是否在不同的字符串中

时间:2011-09-09 11:55:40

标签: python string

我有一个子字符串:

substring = "please help me out"

我有另一个字符串:

string = "please help me out so that I could solve this"

如何使用Python查找substringstring的子集?

10 个答案:

答案 0 :(得分:166)

insubstring 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()返回-1string.index()提出ValueError

答案 4 :(得分:9)

我想如果你正在考虑如何在技术面试时做这个,他们不希望你使用Python的内置函数infind,这是我想添加的。可怕,但确实发生了:

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)

enter image description here

而不是使用find(),其中一个简单的方法是使用''如上所述。

如果' substring'存在于' str'然后,如果部分将执行,否则部分将执行。