7 façons de vérifier si une chaîne Python contient une sous-chaîne

Travailler avec des chaînes est une tâche courante en Python. Vous devez souvent déterminer si une chaîne contient une autre chaîne.

Les méthodes les plus simples pour vérifier si une chaîne Python contient une sous-chaîne incluent l'opérateur 'in', la fonction find() et la méthode index(). Des scénarios plus complexes peuvent être résolus avec des expressions régulières ou une bibliothèque externe comme Pandas.

Cet article vous montre :

  • quatre méthodes simples

  • deux fonctions regex plus complexes

  • une méthode utilisant la librairie Pandas

Vous apprendrez chaque technique à travers des exemples de leur syntaxe et de leur utilisation. Vous obtiendrez également des conseils sur la méthode la mieux adaptée aux différentes exigences.

Commençons!

Table des matières

Principes de base des chaînes Python

Une chaîne en Python est une séquence de caractères utilisée pour représenter des données textuelles. Ils peuvent inclure des lettres, des chiffres, des symboles et des espaces.

C'est l'un des types de données intégrés de Python et peut être créé à l'aide de :

  • Guillemets simples (' ')

  • double citation (" ")

  • guillemets triples ("' '' ou """ """)

Les chaînes sont indexées, ce qui signifie que vous pouvez accéder à des caractères spécifiques en faisant référence à leur numéro d'index. L'index de départ est 0, ce qui signifie que le premier caractère d'une chaîne a un index de 0, le second a un index de 1, et ainsi de suite.

Ensuite, nous examinons les moyens de vérifier les sous-chaînes.

4 façons les plus simples de vérifier les sous-chaînes

Python fournit de nombreuses façons de vérifier si une certaine sous-chaîne existe dans une chaîne plus grande. Certains sont plus complexes que d'autres. Pour les vérifications les plus élémentaires, les méthodes les plus simples sont l'opérateur in ou l'une des trois méthodes de chaîne.

  1. dans l'opérateur

  2. méthode find()

  3. méthode index()

  4. méthode count()

7 façons de vérifier si une chaîne Python contient une sous-chaîne

1. Dans Opérateur

L'opérateur 'in' en Python est un moyen simple et intuitif de vérifier si une chaîne existe dans une autre chaîne. Cet opérateur vérifie l'appartenance et renvoie une valeur booléenne :

  • Vrai si la sous-chaîne se trouve dans la chaîne principale

  • Faux si ce n'est pas le cas

Voici un exemple de code :

s = "Hello, world!"
sub = "world"
result = sub in s
print(result)  # Output: True

L'opérateur 'in' est sensible à la casse. Cela signifie qu'il traite les caractères minuscules et majuscules comme différents. Le code ci-dessus ne trouvera pas la sous-chaîne "hello", donc l'opérateur renvoie false.

Si vous souhaitez effectuer une vérification insensible à la casse, vous pouvez convertir à la fois la chaîne principale et la sous-chaîne dans la même casse avant d'effectuer la vérification :

s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result)  # Output: True

L'inconvénient de l'opérateur in est qu'il ne fournit pas la position de la sous-chaîne dans la chaîne principale. Pour cela, vous auriez besoin d'une autre méthode dans cette section. Continuer à lire…

2. Méthode Find()

La méthode find() renvoie le premier index auquel la sous-chaîne apparaît, ou -1 si la sous-chaîne est introuvable.

Vous appelez la méthode find() sur une chaîne s , en passant la sous-chaîne sub comme argument. Voici un exemple:

s = "Hello, world!"
sub = "world"
index = s.find(sub)

if index != -1:
     print("Found at index:", index)  # Output: Found at index: 7
else:
     print("Not found")

Vous pouvez éventuellement spécifier un index de début ou de fin pour limiter votre recherche. L'inconvénient de cette méthode est qu'elle s'arrête à la première occurrence.

3. Méthode Index()

La méthode index() est assez similaire à la méthode find() , sauf qu'elle lève une ValueError lorsque la sous-chaîne n'est pas trouvée. Cela signifie que vous devez envelopper l'appel dans une section Try/Except.

Pour utiliser la méthode index() , appelez-la sur une chaîne s et passez la sous-chaîne sub comme argument.

s = "Hello, world!"
sub = "world"

try: 
     index = s.index(sub)
     print("Found at index:", index)  # Output: Found at index: 7
except ValueError:
     print("Not found")

Cette méthode s'arrête également à la première sous-chaîne à l'intérieur du texte.

4. Méthode Count ()

La méthode .count() compte combien de fois une sous-chaîne apparaît dans la chaîne d'origine. Il renvoie un entier représentant ce nombre. Si la sous-chaîne n'est pas trouvée dans la chaîne principale, elle renvoie 0.

Voici un exemple simple qui recherche la lettre "o" dans le texte "Hello, world!" :

s = "Hello, world!"
sub = "o"
print(s.count(sub))  # Output:2

2 façons de faire correspondre des chaînes avec des expressions régulières

L'utilisation d'expressions régulières (regex) est un peu plus complexe que les méthodes de la section précédente. Cependant, ils vous offrent plus d'options pour rechercher et analyser le texte que vous traitez.

Deux des manières les plus simples dans le module re sont :

  1. recherche()

  2. Trouver tout()

7 façons de vérifier si une chaîne Python contient une sous-chaîne

1. re.Recherche()

La fonction search() du module re recherche un motif dans une chaîne donnée et renvoie un objet match si une correspondance est trouvée. Sinon, il renvoie None .

Par défaut, la fonction est sensible à la casse. Vous pouvez utiliser l' indicateur re.IgnoreCase pour éviter la sensibilité à la casse.

Voici un exemple simple qui utilise des instructions conditionnelles selon que la chaîne est trouvée :

import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)

if match: 
     print("Pattern found")
else:
     print("Pattern not found")

Notez que cette méthode trouve la première correspondance, puis arrête la recherche. Si vous voulez trouver toutes les correspondances, alors la suivante sur cette liste est pour vous.

2. re.Findall()

Cette méthode trouve toutes les occurrences d'un modèle de recherche dans une chaîne donnée et renvoie une liste contenant toutes les correspondances.

Cet exemple utilise un modèle qui correspond à un ou plusieurs chiffres dans une chaîne. La chaîne de texte "123, 456, 789" contient trois séquences de chiffres.

import re 

pattern = "d+" 
text = "123, 456, 789" 
numbers = re.findall(pattern, text) 

print(numbers)

Voici la réponse de l'exemple de code : ['123', '456', '789'].

Comment trouver des sous-chaînes avec des pandas

7 façons de vérifier si une chaîne Python contient une sous-chaîne

Pandas est une bibliothèque d'analyse et de manipulation de données open source populaire pour Python. Il fournit les structures de données et les fonctions nécessaires pour manipuler et analyser les données structurées.

L'une des principales structures de données fournies par Pandas est le DataFrame. Vous pouvez utiliser cette structure de données polyvalente pour rechercher une chaîne dans une autre.

L'avantage de Pandas est qu'il fournit des packages de code que vous auriez à écrire de manière intensive dans d'autres langages de programmation. Plus précisément, beaucoup de puissance est contenue dans la fonction contains.

Fonction str.contains() dans Pandas

La méthode str.contains() teste si un modèle ou une expression régulière spécifié est contenu dans une chaîne d'une colonne DataFrame.

Voici un exemple qui importe la bibliothèque et recherche une chaîne dans une liste de chaînes :

import pandas as pd

# Creating a sample DataFrame 
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']} 
df = pd.DataFrame(data) 

# Searching for substrings in the 'fruits' column 
has_an = df['fruits'].str.contains(pat='an', regex=False)

# Filtering the DataFrame based on the search results 
filtered_df = df[has_an] 
print(filtered_df)

Dans cet exemple, nous recherchons la sous-chaîne 'an' dans la colonne 'fruits' et filtrons le DataFrame en conséquence. La sortie serait :

  • 1 banane

  • 4 oranges

Si vous cherchez d'autres exemples de ce que Pandas peut faire, regardez cette vidéo :

Conseils pour choisir une méthode spécifique en Python

Le choix de la méthode dépend en grande partie des exigences spécifiques de votre tâche.

Voici quatre raisons de choisir l'une des méthodes que vous avez apprises dans cet article, plus une méthode bonus que vous apprendrez ailleurs sur ce blog :

  1. Rapidité de traitement

  2. Vous devez connaître l'emplacement de la sous-chaîne

  3. Vous devez connaître le nombre d'occurrences de la sous-chaîne

  4. Vous voulez faire correspondre des motifs complexes

  5. Effectuer une analyse de texte

1. Rapidité de traitement

7 façons de vérifier si une chaîne Python contient une sous-chaîne

L'opérateur 'in' est le meilleur choix si vous voulez simplement savoir si une sous-chaîne existe dans une chaîne.

C'est simple, intuitif et rapide à cet effet. Cependant, il ne fournit pas d'informations sur l'emplacement ou le nombre de sous-chaînes.

2. Emplacement de la sous-chaîne

Utilisez les méthodes .find() ou .index() si vous avez besoin de connaître la position de la première occurrence d'une sous-chaîne dans une chaîne.

Ils renvoient tous les deux l'index de la première occurrence de la sous-chaîne.

3. Nombre de sous-chaînes

Utilisez la méthode .count() lorsque vous voulez savoir combien de fois une sous-chaîne apparaît dans une chaîne.

4. Modèles complexes

Si vous devez faire correspondre des modèles complexes ou effectuer des recherches insensibles à la casse, les expressions régulières sont les plus flexibles. La fonction re.search() peut gérer des modèles au-delà de simples sous-chaînes et peut facilement effectuer des recherches insensibles à la casse.

Cependant, les expressions régulières peuvent être exagérées pour de simples vérifications de sous-chaînes et peuvent également être plus lentes et plus complexes à utiliser et à entretenir.

5. Effectuer une analyse de texte

Consultez notre article sur l'analyse de texte en Python , qui vous montre comment travailler avec la bibliothèque textblob.

Vous pouvez utiliser la fonction .tags pour rechercher des parties du discours ou la fonction .ngram pour rechercher des mots qui apparaissent fréquemment ensemble dans un document.

Dernières pensées

Vous avez appris sept méthodes pour vérifier si un mot ou un objet chaîne est contenu dans un autre. Ceux-ci comprenaient des opérateurs d'adhésion, des fonctions intégrées, des regex et des fonctions Pandas.

Chaque méthode est correcte pour certaines situations mais pas pour toutes. Utilisez cet article comme aide-mémoire lorsque vous maîtrisez le langage de programmation Python et utilisez la meilleure solution pour votre tâche d'analyse de chaînes.

N'oubliez pas qu'il n'y a pas de méthode unique. Chaque approche a ses propres avantages et particularités, alors n'hésitez pas à choisir celle qui correspond à votre style ou au problème particulier que vous essayez de résoudre. En fin de compte, Python a pour but de vous faciliter la vie, alors profitez de sa flexibilité !

Leave a Comment

Gestion des erreurs dans Power Automate via le branchement parallèle

Gestion des erreurs dans Power Automate via le branchement parallèle

Découvrez l

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Découvrez comment comparer facilement des tables dans Power Query pour signaler les différences et optimiser vos analyses de données.

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Dans ce blog, vous découvrirez comment diviser les colonnes dans LuckyTemplates par délimiteurs à l'aide de DAX, une méthode efficace pour gérer des modèles de données complexes.

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

Découvrez comment récolter une valeur avec SELECTEDVALUE DAX pour des calculs dynamiques dans LuckyTemplates.

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculez la marge en pourcentage à l

Modifier les formats de date à laide de léditeur Power Query

Modifier les formats de date à laide de léditeur Power Query

Dans ce didacticiel, nous allons explorer une méthode rapide pour convertir du texte en formats de date à l

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Dans ce blog, vous apprendrez à enregistrer automatiquement la pièce jointe d

Comment adapter les cellules Excel au texte : 4 solutions simples

Comment adapter les cellules Excel au texte : 4 solutions simples

Découvrez comment adapter les cellules Excel au texte avec ces 4 solutions simples pour améliorer la présentation de vos données.

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Dans ce didacticiel SSRS Report Builder, découvrez comment utiliser le générateur d

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Découvrez les outils pour créer un thème de couleur efficace pour vos rapports LuckyTemplates et améliorer leur apparence.