Vérifiez si la chaîne contient une sous-chaîne en Python

Cet article explique comment vérifier si un Python string contient une autre chaîne ou une sous-chaîne en Python. Étant donné deux chaînes, vérifiez si une sous-chaîne se trouve dans la chaîne donnée.

  Input:   Substring = 'geeks'   String='geeks for geeks'   Output:   yes   Input:   Substring = 'geek'  String='geeks for geeks'   Output:   yes   Explanation:   In this, we are checking if the substring is present in a given string or not. 

Sous-chaîne Python dans une chaîne

La vérification d'une sous-chaîne est l'une des tâches les plus utilisées en Python. Python utilise de nombreuses méthodes pour vérifier une chaîne contenant une sous-chaîne comme find(), index(), count(), etc. La méthode la plus efficace et la plus rapide consiste à utiliser un dans opérateur qui est utilisé comme opérateur de comparaison. Nous aborderons ici différentes approches :

  • Utiliser le If-Else
  • Utilisation dans l'opérateur
  • Vérification à l'aide Méthode split()
  • En utilisant méthode find()
  • En utilisant méthode count()
  • En utilisant Méthode index()
  • Utiliser la compréhension de liste
  • Utilisation de la fonction lambda
  • Utilisation de la classe magique __contains__.
  • Utilisation de la fonction de découpage
  • En utilisant expressions régulières
  • en utilisant la méthode opérateur contient()

Vérifier Sous-chaîne Python dans une chaîne en utilisant le If-Else

En Python, vous pouvez vérifier que la sous-chaîne python de la chaîne est présente à l'aide d'un sinon déclaration. L'instruction if-else vous permet d'exécuter conditionnellement différents blocs de code selon que la condition est vraie ou fausse.

Python3




# Take input from users> MyString1> => 'A geek in need is a geek indeed'> > if> 'need'> in> MyString1:> > print> (> 'Yes! it is present in the string'> )> else> :> > print> (> 'No! it is not present'> )>

Sortir

Yes! it is present in the string 

Complexité temporelle : Sur)
Espace Auxiliaire : O(1)

Vérification de la sous-chaîne Python dans la chaîne à l'aide Dans l'opérateur

En Python, vous pouvez facilement vérifier si une sous-chaîne est présente dans une chaîne donnée en utilisant le in> opérateur. Le in> L’opérateur est utilisé pour tester si une valeur particulière (sous-chaîne) existe dans une séquence.

Python3




text> => 'Geeks welcome to the Geek Kingdom!'> > if> 'Geek'> in> text:> > print> (> 'Substring found!'> )> else> :> > print> (> 'Substring not found!'> )> > if> 'For'> in> text:> > print> (> 'Substring found!'> )> else> :> > print> (> 'Substring not found!'> )>

Sortir

Substring found! Substring not found! 

Complexité temporelle : Sur)
Espace Auxiliaire : O(1)

Vérification de la sous-chaîne Python dans la chaîne à l'aide de la méthode Split()

La vérification de la sous-chaîne python dans la chaîne est présente ou n'est pas utilisée diviser(). Divisez d’abord la chaîne donnée en mots et stockez-les dans une variable s, puis en utilisant la condition if, vérifiez si une sous-chaîne est présente ou non dans la chaîne donnée.

Python3




# input strings str1 and substr> string> => 'geeks for geeks'> # or string=input() ->prendre l'entrée de l'utilisateur> substring> => 'geeks'> # or substring=input()> > # splitting words in a given string> s> => string.split()> > # checking condition> # if substring is present in the given string then it gives output as yes> if> substring> in> s:> > print> (> 'yes'> )> else> :> > print> (> 'no'> )>

Sortir

Yes 

Complexité temporelle : O(n+m)
Espace Auxiliaire : Sur)

Vérifiez la sous-chaîne Python dans la chaîne à l'aide de la méthode Find()

Nous pouvons vérifier chaque mot de manière itérative, mais Python nous fournit une fonction intégrée trouver() qui vérifie si une sous-chaîne est présente dans la chaîne, ce qui se fait sur une seule ligne. La fonction find() renvoie -1 si elle n'est pas trouvée, sinon elle renvoie la première occurrence, donc en utilisant cette fonction, ce problème peut être résolu.

Python3




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)>

Sortir

Yes 

Complexité temporelle : SUR)
Espace Auxiliaire : O(1)

Vérifiez la sous-chaîne Python dans la chaîne à l'aide de la méthode Count()

Vous pouvez également compter le nombre d'occurrences d'une sous-chaîne spécifique dans une chaîne, puis vous pouvez utiliser le Python compter() méthode. Si la sous-chaîne n'est pas trouvée, alors oui sera imprimé, sinon non sera imprimé.

Python3




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

Sortir

No 

Complexité temporelle : SUR)
Espace Auxiliaire : O(1)

Vérifiez la sous-chaîne Python dans la chaîne à l'aide de la méthode Index()

Le Méthode Index() renvoie l'index de départ de la sous-chaîne passée en paramètre. Ici sous-chaîne est présent à l’index 16.

Python3




any_string> => 'Geeks for Geeks substring '> start> => 0> end> => 1000> print> (any_string.index(> 'substring'> , start, end))>

Sortir

16 

Complexité temporelle : SUR)
Espace Auxiliaire : O(1)

Vérifiez la sous-chaîne Python dans la chaîne u chanter Compréhension de la liste

Pour vérifier la sous-chaîne Python dans la chaîne en utilisant compréhension de liste . L'utilisation de la compréhension de liste fournit un moyen concis de rechercher une sous-chaîne dans une chaîne et de déterminer si elle existe dans l'un des mots.

Python3




s> => 'geeks for geeks'> s2> => 'geeks'> print> ([> 'yes'> if> s2> in> s> else> 'no'> ])>

Sortir

['Yes'] 

Complexité temporelle : SUR)
Espace Auxiliaire : O(1)

Vérifiez la sous-chaîne Python dans la chaîne en utilisant la fonction Lambda

Pour vérifier la sous-chaîne Python dans la chaîne en utilisant fonction lambda . L'utilisation d'une fonction lambda fournit un moyen concis de rechercher une sous-chaîne dans une chaîne et de déterminer si elle existe dans l'un des mots.

Python3




s> => 'geeks for geeks'> s2> => 'geeks'> x> => list> (> filter> (> lambda> x: (s2> in> s),s.split()))> print> ([> 'yes'> if> x> else> 'no'> ])>

Sortir

['Yes'] 

Complexité temporelle : O(n+m)
Espace Auxiliaire : O(m)

Vérifiez la sous-chaîne Python dans String à l'aide de la classe magique __contains__.

Pour vérifier la sous-chaîne python dans la chaîne, nous utilisons __contains__(). Cette méthode est utilisée pour vérifier si la chaîne est présente ou non dans l’autre chaîne.

Python3




a> => [> 'Geeks-13'> ,> 'for-56'> ,> 'Geeks-78'> ,> 'xyz-46'> ]> for> i> in> a:> > if> i.__contains__(> 'Geeks'> ):> > print> (f> 'Yes! {i} is containing.'> )>

Sortir

Yes! Geeks-13 is containing. Yes! Geeks-78 is containing. 

Complexité temporelle : SUR)
Espace Auxiliaire : O(1)

Vérifiez la sous-chaîne Python dans la chaîne en utilisant le découpage

Vérifiez la sous-chaîne python dans la chaîne en utilisant le découpage. Cette implémentation utilise une boucle pour parcourir chaque index de départ possible de la sous-chaîne dans la chaîne, puis utilise trancher pour comparer la sous-chaîne actuelle à l'argument de la sous-chaîne. Si la sous-chaîne actuelle correspond à l'argument de sous-chaîne, alors la fonction renvoie True, sinon renvoie False.

Python3




def> is_substring(string, substring):> > for> i> in> range> (> len> (string)> -> len> (substring)> +> 1> ):> > if> string[i:i> +> len> (substring)]> => => substring:> > return> True> > return> False> string> => 'A geeks in need is a geek indeed'> substring> => 'geeks'> print> (is_substring(string,substring))>

Sortir

True 

Complexité temporelle : O(n*m)
où n est la longueur de l'argument de chaîne et m est la longueur de l'argument de sous-chaîne. En effet, la fonction utilise une boucle pour parcourir tous les index de départ possibles de la sous-chaîne dans la chaîne, puis utilise le découpage pour comparer la sous-chaîne actuelle à l'argument de la sous-chaîne. Dans le pire des cas, la boucle itérera n-m+1 fois, et chaque opération de tranche prend un temps O(m), ce qui donne une complexité temporelle totale de O((n-m+1)m) = O(nm) .
Espace Auxiliaire : O(1)

Vérifiez la sous-chaîne Python dans la chaîne à l'aide d'une expression régulière

En Python, vous pouvez vérifier que la sous-chaîne python de la chaîne est présente en utilisant expressions régulières . Les expressions régulières offrent de puissantes capacités de correspondance de modèles, vous permettant de définir des modèles de recherche complexes pour la correspondance de sous-chaînes. Voici comment utiliser des expressions régulières pour rechercher une sous-chaîne dans une chaîne.

Python3




import> re> > MyString1> => 'A geek in need is a geek indeed'> > if> re.search(> 'need'> , MyString1):> > print> (> 'Yes! it is present in the string'> )> else> :> > print> (> 'No! it is not present'> )>

Sortir

Yes! it is present in the string 

Complexité temporelle : O(n), où n est la longueur de la chaîne d'entrée.
Complexité spatiale : O(1), car nous n'utilisons aucun espace supplémentaire

Vérifiez la sous-chaîne Python dans la chaîne en utilisant la méthode Operator.contains()

Cette approche utilisée opérateur.contient() méthode pour vérifier si la sous-chaîne est présente dans la chaîne Si la condition est True, imprimer oui sinon imprimer non

Python3




#Python program to check if a substring is present in a given string> import> operator as op> s> => 'geeks for geeks'> s2> => 'geeks'> if> (op.contains(s,s2)):> > print> (> 'yes'> )> else> :> > print> (> 'no'> )>

Sortir

Yes 

Complexité temporelle : SUR)
Espace Auxiliaire : O(1)