Extraire une sous-chaîne d'une chaîne en Python
- Extraire une sous-chaîne à l’aide du découpage de chaînes en Python
-
Extraire la sous-chaîne en utilisant le constructeur
slice()
en Python - Extraire une sous-chaîne à l’aide d’une expression régulière 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’index4
jusqu’au dernier index.[ : 8]
-> Renvoie une sous-chaîne à partir de l’index0
jusqu’à l’index7
.[2 : 7]
-> Renvoie une sous-chaîne à partir de l’index2
jusqu’à l’index6
.[4 : -1]
-> Renvoie une sous-chaîne à partir de l’index4
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.
Article connexe - Python String
- Supprimer les virgules de la chaîne en Python
- Comment vérifier qu'une chaîne est vide de manière pythonique
- Convertir une chaîne en nom de variable en Python
- Comment supprimer les espaces dans une chaîne de caractères en Python
- Comment extraire des nombres d'une chaîne de caractèresen Python
- Comment convertir une chaîne de caractères en datetime en Python