Invertovanie množín znakov v regulárnych výrazoch
Pomocou striešky '^' na začiatku
hranatých zátvoriek môžete invertovať
požadovaný výraz. Ak napríklad príkaz [ab]
vyhľadáva písmeno 'a' alebo 'b',
potom príkaz [^ab] bude vyhľadávať všetky
znaky okrem 'a' a 'b'.
Príklad
V tomto príklade vyhľadávací vzor vyzerá
takto: písmeno 'x', potom NIE písmeno
'a', nie 'b' a nie 'c',
potom písmeno 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Výsledok vykonania kódu:
'xax xbx xcx !'
Príklad
V tomto príklade vyhľadávací vzor vyzerá
takto: písmeno 'x', potom NIE malé
latinské písmeno, potom písmeno 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Výsledok vykonania kódu:
'xaz xbz ! !'
Praktické úlohy
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: číslica 1, potom znak
nie 'e' a nie 'x', číslica
2.
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: písmeno 'x', potom NIE
číslica od 2 do 7, písmeno
'z'.
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: písmeno 'x', potom NIE
veľké latinské písmeno od 1 a viackrát,
písmeno 'z'.
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: písmeno 'x', potom NIE
veľké alebo malé latinské písmeno a
nie číslica od 1 do 5 od 1
a viackrát, písmeno 'z'.