Inversione di set di caratteri nelle regex
Utilizzando il simbolo di accento circonflesso '^' all'inizio
delle parentesi quadre è possibile invertire
ciò che si desidera. Se, ad esempio, il comando [ab]
cerca la lettera 'a' o 'b',
il comando [^ab] cercherà tutti
i caratteri, tranne 'a' e 'b'.
Esempio
In questo esempio il modello di ricerca è
il seguente: lettera 'x', poi NON lettera
'a', non 'b' e non 'c',
poi lettera 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Risultato dell'esecuzione del codice:
'xax xbx xcx !'
Esempio
In questo esempio il modello di ricerca è
il seguente: lettera 'x', poi NON lettera
minuscola latina, poi lettera 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Risultato dell'esecuzione del codice:
'xaz xbz ! !'
Problemi pratici
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: cifra 1, poi carattere
non 'e' e non 'x', cifra
2.
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: lettera 'x', poi NON
cifra da 2 a 7, lettera
'z'.
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: lettera 'x', poi NON
lettera latina maiuscola da 1 o più
volte, lettera 'z'.
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: lettera 'x', poi NON
lettera latina maiuscola o minuscola e
non cifra da 1 a 5 da 1
o più volte, lettera 'z'.