Simbolių rinkinių invertavimas reguliariosiose išraiškose
Naudojant šapkę '^' pradžioje
kvadratinių skliaustų, galima invertuoti
norimą rezultatą. Jei, pavyzdžiui, komanda [ab]
ieško raidės 'a' arba 'b', tai
komanda [^ab] ieško visų
simbolių, išskyrus 'a' ir 'b'.
Pavyzdys
Šiame pavyzdyje paieškos šablonas atrodo
taip: raidė 'x', tada NE raidė
'a', ne 'b' ir ne 'c',
po to raidė 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Kodo vykdymo rezultatas:
'xax xbx xcx !'
Pavyzdys
Šiame pavyzdyje paieškos šablonas atrodo
taip: raidė 'x', tada NE mažoji
lotyniška raidė, po to raidė 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Kodo vykdymo rezultatas:
'xaz xbz ! !'
Praktinės užduotys
Parašykite reguliariąją išraišką, kuri ras eilutes
pagal šabloną: skaitmuo 1, tada simbolis
ne 'e' ir ne 'x', skaitmuo
2.
Parašykite reguliariąją išraišką, kuri ras eilutes
pagal šabloną: raidė 'x', tada NE
skaitmuo nuo 2 iki 7, raidė
'z'.
Parašykite reguliariąją išraišką, kuri ras eilutes
pagal šabloną: raidė 'x', tada NE
didelė lotyniška raidė nuo 1 ir daugiau
kartų, raidė 'z'.
Parašykite reguliariąją išraišką, kuri ras eilutes
pagal šabloną: raidė 'x', tada NE
didelė ar mažoji lotyniška raidė ir
ne skaitmuo nuo 1 iki 5 nuo 1
ir daugiau kartų, raidė 'z'.