Estrai sottostringa da una stringa in Python
- Estrai la sottostringa usando la suddivisione in stringhe in Python
-
Estrai sottostringa usando il costruttore
slice()
in Python - Estrai sottostringa usando l’espressione regolare in Python
La stringa è una sequenza di caratteri. Ci occupiamo di stringhe tutto il tempo, non importa se stiamo facendo sviluppo di software o programmazione competitiva. A volte, durante la scrittura di programmi, dobbiamo accedere a sottoparti di una stringa. Queste sottoparti sono più comunemente note come sottostringhe. Una sottostringa è un sottoinsieme di una stringa.
In Python, possiamo eseguire facilmente questa operazione utilizzando l’affettamento di stringhe o utilizzando espressioni regolari o regex.
Estrai la sottostringa usando la suddivisione in stringhe in Python
Ci sono alcuni modi per eseguire il taglio delle stringhe in Python. L’indicizzazione è il metodo più semplice e più comunemente utilizzato. Fare riferimento al codice seguente.
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
Produzione:
Mississippi
issippi
Mississi
ssiss
issipp
ssipp
Nel codice sopra, aggiungiamo parentesi []
alla fine della variabile che memorizza la stringa. Usiamo questa notazione per l’indicizzazione. All’interno di queste parentesi, aggiungiamo alcuni valori interi che rappresentano gli indici.
Questo è il formato delle parentesi quadre [start : stop : step]
(separate da due punti (:
)).
Per impostazione predefinita, il valore di start
è 0
o il primo indice, il valore di stop
è l’ultimo indice e il valore di step
è 1
. start
rappresenta l’indice iniziale della sottostringa, stop
rappresenta l’indice finale della sottostringa e step
rappresenta il valore da usare per l’incremento dopo ogni indice.
La sottostringa restituita è in realtà tra l’indice start
e l’indice stop - 1
perché l’indicizzazione inizia da 0
in Python. Quindi, se desideriamo recuperare Miss
da Mississippi
, dovremmo usare [0 : 4]
Le parentesi non possono essere vuote. Se desideri utilizzare i valori predefiniti, la quantità richiesta di due punti :
dovrebbe essere aggiunta con spazi intermedi per indicare a quale parametro ti riferisci. Fare riferimento al seguente elenco per una migliore comprensione.
[:]
-> Restituisce l’intera stringa.[4 : ]
-> Restituisce una sottostringa a partire dall’indice4
fino all’ultimo indice.[ : 8]
-> Restituisce una sottostringa a partire dall’indice0
fino all’indice7
.[2 : 7]
-> Restituisce una sottostringa a partire dall’indice2
fino all’indice6
.[4 : -1]
-> Restituisce una sottostringa a partire dall’indice4
fino al penultimo indice.-1
può essere usato per definire l’ultimo indice in Python.[-6 : -1]
-> Restituisce una sottostringa a partire dal sesto indice dalla fine fino al penultimo indice.
Estrai sottostringa usando il costruttore slice()
in Python
Invece di menzionare gli indici all’interno delle parentesi, possiamo usare il costruttore slice()
per creare un oggetto slice
per suddividere una stringa o qualsiasi altra sequenza come una lista o una tupla.
Il costruttore slice(start, stop, step)
accetta tre parametri, vale a dire, start
, stop
e step
. Significano esattamente lo stesso come spiegato sopra.
Il funzionamento di slice
è leggermente diverso rispetto alla notazione tra parentesi. L’oggetto slice viene inserito all’interno delle parentesi della variabile stringa in questo modo myString[<'slice' object>]
.
Se un singolo valore intero, diciamo x
, viene fornito al costruttore slice()
e viene ulteriormente utilizzato per la suddivisione dell’indice, verrà recuperata una sottostringa a partire dall’indice 0
fino all’indice x - 1
. Fare riferimento al codice seguente.
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])
Produzione:
Mis
Miss
Mississi
ssiss
issipp
ssipp
Gli output ricevuti sono autoesplicativi. Gli indici seguono le stesse regole definite per la notazione tra parentesi.
Estrai sottostringa usando l’espressione regolare in Python
Per le espressioni regolari, useremo il pacchetto integrato di Python re
.
import re
string = "123AAAMississippiZZZ123"
try:
found = re.search("AAA(.+?)ZZZ", string).group(1)
print(found)
except AttributeError:
pass
Produzione:
Mississippi
Nel codice precedente, la funzione search()
cerca la prima posizione del pattern fornito come argomento nella stringa passata. Restituisce un oggetto Match
. Un oggetto Match
ha molti attributi che definiscono l’output come lo span
della sottostringa o gli indici di inizio e fine della sottostringa.
print(dir(re.search('AAA(.+?)ZZZ', string)))
restituirà tutti gli attributi dell’oggetto Match
. Notare che alcuni attributi potrebbero mancare perché quando si usa dir()
, viene chiamato il metodo __dir__()
, e questo metodo restituisce una lista di tutti gli attributi. E questo metodo è modificabile o sovrascrivibile.
Articolo correlato - Python String
- Come controllare una stringa è vuota in modo pitonico
- Converti una stringa in nome variabile in Python
- Come rimuovere gli spazi bianchi in una stringa in Python
- Estrai numeri da una stringa in Python
- Come convertire una stringa in datario in Python
- Come convertire una stringa in minuscola in Python 2 e 3