Inversarea seturilor de caractere în regex
Folosind semnul circumflex '^' la începutul
parantezelor pătrate poți inversa
dorința. Dacă, de exemplu, comanda [ab]
caută litera 'a' sau 'b',
atunci comanda [^ab] va căuta toate
caracterele, cu excepția 'a' și 'b'.
Exemplu
În acest exemplu, șablonul de căutare arată
astfel: litera 'x', apoi NU litera
'a', nu 'b' și nu 'c',
apoi litera 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Rezultatul executării codului:
'xax xbx xcx !'
Exemplu
În acest exemplu, șablonul de căutare arată
astfel: litera 'x', apoi NU o literă mică
latină, apoi litera 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Rezultatul executării codului:
'xaz xbz ! !'
Probleme practice
Scrieți o expresie regulată care va găsi șirurile
după modelul: cifra 1, apoi caracter
care nu este 'e' și nu 'x', cifra
2.
Scrieți o expresie regulată care va găsi șirurile
după modelul: litera 'x', apoi NU
o cifră de la 2 la 7, litera
'z'.
Scrieți o expresie regulată care va găsi șirurile
după modelul: litera 'x', apoi NU
o literă latină mare de la 1 sau mai multe
ori, litera 'z'.
Scrieți o expresie regulată care va găsi șirurile
după modelul: litera 'x', apoi NU
o literă latină mare sau mică și
nu o cifră de la 1 la 5 de la 1
sau mai multe ori, litera 'z'.