⊗pyPmREChG 39 of 129 menu

Gruppi di caratteri nelle espressioni regolari Python

Esistono comandi speciali che permettono di selezionare interi gruppi di caratteri in una volta. Il comando \d indica una cifra da 0 a 9. Il comando \w indica una cifra, una lettera latina o il carattere di sottolineatura. Il comando \s indica uno spazio o un carattere di spaziatura: spazio, ritorno a capo, tabulazione. È possibile invertire il significato del comando, scrivendo una lettera maiuscola: ad esempio, se \d - è una cifra, allora \D - non è una cifra.

Esempio

Troviamo tutte le cifre:

txt = '1 12 123' res = re.sub('\d', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! !! !!!'

Esempio

Gli operatori di ripetizione considerano i comandi-gruppo come un unico elemento, quindi le parentesi raggruppanti non sono necessarie. Nel seguente esempio il modello di ricerca è il seguente: cifra da 0 a 9 una o più volte:

txt = '1 12 123 abc @@@' res = re.sub('\d+', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! ! ! abc @@@'

Esempio

Nel seguente esempio il modello di ricerca è il seguente: qualsiasi cosa una o più volte, ma non una cifra da 0 a 9:

txt = '123abc3@@' res = re.sub('\D+', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'123!3!'

Esempio

In questo esempio il modello di ricerca è il seguente: carattere di spaziatura una volta:

txt = '1 12 123 abc @@@' res = re.sub('\s', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'1!12!123!abc!@@@'

Esempio

In questo esempio il modello di ricerca è il seguente: NON un carattere di spaziatura una o più volte. Tutte le sottostringhe, separate da spazi, saranno sostituite con '!':

txt = '1 12 123 abc @@@' res = re.sub('\S+', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! ! ! ! !'

Esempio

In questo esempio il modello di ricerca è il seguente: cifra o lettera una o più volte. Tutte le sottostringhe, composte da cifre e lettere, saranno sostituite con '!':

txt = '1 12 123a Abc @@@' res = re.sub('\w+', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! ! ! ! @@@'

Esempio

In questo esempio il modello di ricerca è il seguente: NON una cifra e NON una lettera una o più volte. In questo caso, rientrano in questa definizione '@@@' e tutti gli spazi (anche loro non sono cifre né lettere). Si noti che alla fine c'è un solo '!' - in esso è stata trasformata la stringa ' @@@' - con uno spazio davanti:

txt = '1 12 123 Abc @@@' res = re.sub('\W+', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'1!12!123!Abc!'

Problemi pratici

Data la stringa:

txt = 'a1a a2a a3a a4a a5a aba aca'

Scrivi un'espressione regolare che trovi le stringhe, in cui ai lati ci sono le lettere 'a', e tra di esse una cifra.

Data la stringa:

txt = 'a1a a22a a333a a4444a a55555a aba aca'

Scrivi un'espressione regolare che trovi le stringhe, in cui ai lati ci sono le lettere 'a', e tra di esse un numero qualsiasi di cifre.

Data la stringa:

txt = 'aa a1a a22a a333a a4444a a55555a aba aca'

Scrivi un'espressione regolare che trovi le stringhe, in cui ai lati ci sono le lettere 'a', e tra di esse un numero qualsiasi di cifre (incluso zero cifre, cioè la stringa 'aa').

Data la stringa:

txt = 'avb a1b a2b a3b a4b a5b abb acb'

Scrivi un'espressione regolare che trovi le stringhe del seguente tipo: ai lati ci sono le lettere 'a' e 'b', e tra di loro - non un numero e non uno spazio.

Data la stringa:

txt = 'ave a#b a2b a$b a4b a5b a-b acb'

Scrivi un'espressione regolare che trovi le stringhe del seguente tipo: ai lati ci sono le lettere 'a' e 'b', e tra di loro - non una lettera, non una cifra e non uno spazio.

Data la stringa:

txt = 'ave a#a a2a a$a a4a a5a a-a aca'

Scrivi un'espressione regolare che sostituisca tutti gli spazi con '!'.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta