webentwicklung-frage-antwort-db.com.de

So stellen Sie fest, ob sich eine Teilzeichenfolge in einer anderen Zeichenfolge befindet

Ich habe eine Unterzeichenfolge:

substring = "please help me out"

Ich habe eine andere Zeichenfolge:

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

Wie finde ich heraus, ob substring eine Teilmenge von string ist, die Python verwendet?

103
sunny

mit in: substring in string:

>>> substring = "please help me out"
>>> string = "please help me out so that I could solve this"
>>> substring in string
True
166
MarcoS
foo = "blahblahblah"
bar = "somethingblahblahblahmeep"
if foo in bar:
    # do something

(Übrigens: Versuchen Sie, eine Variable nicht string zu benennen, da es eine Python-Standardbibliothek mit demselben Namen gibt. Wenn Sie dies in einem großen Projekt tun, könnten Sie die Leute verwechseln. )

20
Amber

Wenn Sie nach mehr als einem Wahr/Falsch suchen, sind Sie am besten für die Verwendung des re-Moduls geeignet, z.

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() gibt die Zeichenfolge "bitte hilf mir raus" zurück.

13
ewegesin

Ich denke, ich würde dies für den Fall hinzufügen, dass Sie dies für ein technisches Interview tun, in dem Sie nicht möchten, dass Sie die in Python integrierte Funktion in oder find verwenden.

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
9
QueenJolene

Die Leute erwähnten string.find(), string.index() und string.indexOf() in den Kommentaren, und ich fasse sie hier zusammen (gemäß der Python-Dokumentation ):

Zunächst gibt es keine string.indexOf()-Methode. Der von Deviljho gepostete Link zeigt, dass dies eine JavaScript-Funktion ist.

Zweitens geben string.find() und string.index() tatsächlich den Index eines Teilstrings zurück. Der einzige Unterschied besteht darin, wie sie mit der nicht gefundenen Teilzeichenfolge umgehen: string.find() gibt -1 zurück, während string.index() eine ValueError auslöst.

8
Samuel Li

Sie können auch die find () -Methode ausprobieren. Er bestimmt, ob die Zeichenfolge str in einer Zeichenfolge oder in einer Teilzeichenfolge von Zeichenfolge auftritt.

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")
5
Abhishek Gupta
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
1
Fredrik Pihl
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()
1
avina k

 enter image description here

Anstatt find () zu verwenden, ist eine der einfachen Möglichkeiten die Verwendung von 'in' wie oben.

wenn 'substring' in 'str' vorhanden ist, wird ein Teil ausgeführt, ansonsten wird ein Teil ausgeführt.

0
Dev d

Kann auch diese Methode verwenden 

if substring in string:
    print(string + '\n Yes located at:'.format(string.find(substring)))
0
jackotonye