Extraire une sous-chaîne d'une chaîne en Python

Vaibhav Vaibhav 10 octobre 2023
  1. Extraire une sous-chaîne à l’aide du découpage de chaînes en Python
  2. Extraire la sous-chaîne en utilisant le constructeur slice() en Python
  3. Extraire une sous-chaîne à l’aide d’une expression régulière en Python
Extraire une sous-chaîne d'une chaîne en Python

La chaîne est une séquence de caractères. Nous traitons des chaînes tout le temps, peu importe si nous faisons du développement logiciel ou de la programmation compétitive. Parfois, lors de l’écriture de programmes, nous devons accéder à des sous-parties d’une chaîne. Ces sous-parties sont plus communément appelées sous-chaînes. Une sous-chaîne est un sous-ensemble d’une chaîne.

En Python, nous pouvons facilement effectuer cette tâche en utilisant le découpage de chaînes ou en utilisant une expression régulière ou une expression régulière.

Extraire une sous-chaîne à l’aide du découpage de chaînes en Python

Il existe plusieurs façons de trancher des chaînes en Python. L’indexation est la méthode la plus élémentaire et la plus couramment utilisée. Reportez-vous au code suivant.

myString = "Mississippi"
print(myString[:])  # Line 1
print(myString[4:])  # Line 2
print(myString[:8])  # Line 3
print(myString[2:7])  # Line 4
print(myString[4:-1])  # Line 5
print(myString[-6:-1])  # Line 6

Production:

Mississippi
issippi
Mississi
ssiss
issipp
ssipp

Dans le code ci-dessus, nous ajoutons des crochets [] à la fin de la variable stockant la chaîne. Nous utilisons cette notation pour l’indexation. À l’intérieur de ces crochets, nous ajoutons des valeurs entières qui représentent des index.

C’est le format des crochets [start : stop : step] (séparés par deux points (:)).

Par défaut, la valeur de start est 0 ou le premier index, la valeur de stop est le dernier index, et la valeur de step est 1. start représente l’index de départ de la sous-chaîne, stop représente l’index de fin de la sous-chaîne, et step représente la valeur à utiliser pour l’incrémentation après chaque index.

La sous-chaîne retournée est en fait entre l’index start et l’index stop - 1 car l’indexation commence à 0 en Python. Donc, si nous voulons récupérer Miss de Mississippi, nous devrions utiliser [0 : 4]

Les crochets ne peuvent pas être vides. Si vous souhaitez utiliser les valeurs par défaut, le nombre requis de deux points : doit être ajouté avec des espaces entre les deux pour indiquer le paramètre auquel vous faites référence. Reportez-vous à la liste suivante pour une meilleure compréhension.

  • [:] -> Renvoie la chaîne entière.
  • [4 : ] -> Renvoie une sous-chaîne à partir de l’index 4 jusqu’au dernier index.
  • [ : 8] -> Renvoie une sous-chaîne à partir de l’index 0 jusqu’à l’index 7.
  • [2 : 7] -> Renvoie une sous-chaîne à partir de l’index 2 jusqu’à l’index 6.
  • [4 : -1] -> Renvoie une sous-chaîne à partir de l’index 4 jusqu’à l’avant-dernier index. -1 peut être utilisé pour définir le dernier index en Python.
  • [-6 : -1] -> Retourne une sous-chaîne à partir du sixième index de la fin jusqu’à l’avant-dernier index.

Extraire la sous-chaîne en utilisant le constructeur slice() en Python

Au lieu de mentionner les index entre crochets, nous pouvons utiliser le constructeur slice() pour créer un objet slice pour découper une chaîne ou toute autre séquence telle qu’une liste ou un tuple.

Le constructeur slice(start, stop, step) accepte trois paramètres, à savoir, start, stop et step. Ils signifient exactement la même chose que celle expliquée ci-dessus.

Le fonctionnement de slice est un peu différent par rapport à la notation entre crochets. L’objet slice est placé entre les crochets de la variable chaîne comme ceci myString[<'slice' object>].

Si une seule valeur entière, disons x, est fournie au constructeur slice() et est ensuite utilisée pour le découpage d’index, une sous-chaîne commençant de l’index 0 jusqu’à l’index x - 1 sera récupérée. Reportez-vous au code suivant.

myString = "Mississippi"
slice1 = slice(3)
slice2 = slice(4)
slice3 = slice(0, 8)
slice4 = slice(2, 7)
slice5 = slice(4, -1)
slice6 = slice(-6, -1)
print(myString[slice1])
print(myString[slice2])
print(myString[slice3])
print(myString[slice4])
print(myString[slice5])
print(myString[slice6])

Production:

Mis
Miss
Mississi
ssiss
issipp
ssipp

Les sorties reçues sont explicites. Les index suivent les mêmes règles que celles définies pour la notation entre crochets.

Extraire une sous-chaîne à l’aide d’une expression régulière en Python

Pour les expressions régulières, nous utiliserons le package intégré de Python re.

import re

string = "123AAAMississippiZZZ123"

try:
    found = re.search("AAA(.+?)ZZZ", string).group(1)
    print(found)
except AttributeError:
    pass

Production:

Mississippi

Dans le code ci-dessus, la fonction search() recherche le premier emplacement du motif fourni en argument dans la chaîne passée. Il renvoie un objet Match. Un objet Match possède de nombreux attributs qui définissent la sortie comme le span de la sous-chaîne ou les index de début et de fin de la sous-chaîne.

print(dir(re.search('AAA(.+?)ZZZ', string))) affichera tous les attributs de l’objet Match. Notez que certains attributs peuvent être manquants car lorsque dir() est utilisé, la méthode __dir__() est appelée, et cette méthode retourne une liste de tous les attributs. Et cette méthode est modifiable ou remplaçable.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python String