⊗pyPmREChS 40 of 129 menu

Set di caratteri nelle espressioni regolari Python

I gruppi di caratteri \d e \w non sono molto flessibili. Anche un compito semplice come trovare tutte le lettere, ma non i numeri - non può essere risolto da loro. Per tali compiti si dovrebbero usare le parentesi quadre, che rappresentano l'operazione 'o'.

Le parentesi quadre sostituiscono un carattere, qualsiasi di quelli elencati all'interno. Ad esempio, così: x[abc]x - stiamo dicendo che ai bordi devono esserci lettere x, e all'interno - un carattere: o 'a', o 'b', o 'c'.

Dopo le parentesi quadre si possono scrivere operatori di ripetizione. Ad esempio, così: x[abc]+x - stiamo dicendo che all'interno degli x può esserci qualsiasi quantità di caratteri 'a', 'b' e 'c' - in qualsiasi combinazione.

Si possono non solo elencare caratteri, ma creare gruppi di caratteri, scrivendo tra due caratteri un trattino. Ad esempio, così: [a-d] - otteniamo tutti i caratteri da 'a' a 'd'.

Vediamo degli esempi.

Esempio

In questo esempio il modello di ricerca è così: tra le x qualsiasi lettera da 'a' a 'z':

<+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res) <-python->

Risultato dell'esecuzione del codice:

'! ! ! x@x'

Esempio

In questo esempio il modello di ricerca è così: tra le x qualsiasi lettera da 'a' a 'k':

txt = 'xax xbx xmx x@x' res = re.sub('x[a-k]x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! ! xmx x@x'

Esempio

In questo esempio il modello di ricerca è così: tra le x qualsiasi lettera da 'A' a 'Z':

txt = 'xax xBx xcx x@x' res = re.sub('x[A-Z]x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'xax ! xcx x@x'

Esempio

In questo esempio il modello di ricerca è così: tra le x qualsiasi cifra da 0 a 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[0-9]x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'xax ! ! ! x@x'

Esempio

In questo esempio il modello di ricerca è così: tra le x qualsiasi cifra da 3 a 7:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[3-7]x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'xax x1x ! ! x@x'

Esempio

In questo esempio il modello di ricerca è così: tra le x qualsiasi lettera da 'a' a 'z' o cifra da 1 a 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[a-z1-9]x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! ! ! ! x@x'

Esempio

In questo esempio il modello di ricerca è così: tra le x qualsiasi lettera da 'a' a 'z' o lettera da 'A' a 'Z':

txt = 'xax xBx xcx x5x x@x' res = re.sub('x[a-zA-Z]x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! ! ! x5x x@x'

Esempio

In questo esempio il modello di ricerca è così: tra le x qualsiasi lettera da 'a' a 'z' o le cifre 1, 2:

txt = 'xax xbx x1x x2x x3x' res = re.sub('x[a-z12]x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! ! ! ! x3x'

Esempio

In questo esempio il modello di ricerca è così: tra le x lettere da 'a' a 'z' in quantità da 1 e oltre:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]+x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'xx ! ! ! x123x xa3x'

Esempio

Facciamo in modo che la quantità di lettere possa essere anche zero:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]*x', '!', txt) print(res)

Come risultato otterremo:

'! ! ! ! x123x xa3x'

Esempio

All'interno delle parentesi quadre si possono anche indicare caratteri escapati. Troviamo una sequenza di lettere e cifre, ripetuta zero o più volte:

txt = 'xx x@x xadx xas12x xa3x' res = re.sub('x[a-z\d]*x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! x@x ! ! !'

Esempio

Se abbiamo bisogno di indicare altre parentesi quadre, allora anche queste devono essere escapate:

txt = 'xx xrx xas[]x x3x' res = re.sub('x[a-z\[\]]*x', '!', txt) print(res)

Risultato dell'esecuzione del codice:

'! ! ! x3x'

Problemi pratici

Data la stringa:

txt = 'aba aea aca aza axa'

Scrivi un'espressione regolare che trovi secondo il seguente modello: ai bordi ci sono le lettere 'a', e tra di loro - la lettera 'b', 'e' o 'x'.

Data la stringa:

txt = 'a1a a3a a7a a9a aba'

Scrivi un'espressione regolare che trovi secondo il seguente modello: ai bordi ci sono le lettere 'a', e tra di loro - una cifra da 3 a 6.

Data la stringa:

txt = 'aba aea afa aha aga'

Scrivi un'espressione regolare che trovi secondo il seguente modello: ai bordi ci sono le lettere 'a', e tra di loro - una lettera da 'a' a 'g'.

Data la stringa:

txt = 'aba aea afa aha aga'

Scrivi un'espressione regolare che trovi secondo il seguente modello: ai bordi ci sono le lettere 'a', e tra di loro - una lettera da 'a' a 'f' e da 'j' a 'z'.

Data la stringa:

txt = 'aAa aea aEa aJa a3a'

Scrivi un'espressione regolare che trovi secondo il seguente modello: ai bordi ci sono le lettere 'a', e tra di loro - una lettera da 'a' a 'f' e da 'A' a 'D'.

Data la stringa:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Scrivi un'espressione regolare che trovi secondo il seguente modello: ai bordi ci sono le lettere 'a', e tra di loro - lettere latine minuscole, senza toccare le altre.

Data la stringa:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Scrivi un'espressione regolare che trovi secondo il seguente modello: ai bordi ci sono le lettere 'a', e tra di loro - lettere latine minuscole e maiuscole, senza toccare le altre.

Data la stringa:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Scrivi un'espressione regolare che trovi secondo il seguente modello: ai bordi ci sono le lettere 'a', e tra di loro - lettere latine minuscole e cifre, senza toccare le altre.

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