Inverze množin znaků v regulárních výrazech
Pomocí stříšky '^' na začátku
hranatých závorek lze invertovat
požadované. Pokud například příkaz [ab]
hledá písmeno 'a' nebo 'b', pak
příkaz [^ab] bude hledat všechny
znaky kromě 'a' a 'b'.
Příklad
V tomto příkladu vypadá vyhledávací vzor
takto: písmeno 'x', poté NE písmeno
'a', ne 'b' a ne 'c',
poté písmeno 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Výsledek provedení kódu:
'xax xbx xcx !'
Příklad
V tomto příkladu vypadá vyhledávací vzor
takto: písmeno 'x', poté NE malé
latinské písmeno, poté písmeno 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Výsledek provedení kódu:
'xaz xbz ! !'
Praktické úlohy
Napište regulární výraz, který najde řetězce
podle vzoru: číslice 1, poté znak
ne 'e' a ne 'x', číslice
2.
Napište regulární výraz, který najde řetězce
podle vzoru: písmeno 'x', poté NE
číslice od 2 do 7, písmeno
'z'.
Napište regulární výraz, který najde řetězce
podle vzoru: písmeno 'x', poté NE
velké latinské písmeno od 1 a více
krát, písmeno 'z'.
Napište regulární výraz, který najde řetězce
podle vzoru: písmeno 'x', poté NE
velké nebo malé latinské písmeno a
ne číslice od 1 do 5 od 1
a více krát, písmeno 'z'.