Invertering av tegnsett i regulære uttrykk
Ved hjelp av cirkumfleks '^' i begynnelsen
av klammeparenteser kan man invertere
ønsket resultat. Hvis for eksempel kommandoen [ab]
søker etter bokstaven 'a' eller 'b', så
vil kommandoen [^ab] søke etter alle
tegn, unntatt 'a' og 'b'.
Eksempel
I dette eksemplet ser søkemønsteret
slik ut: bokstaven 'x', deretter IKKE bokstaven
'a', ikke 'b' og ikke 'c',
så bokstaven 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Resultatet av kjøringen av koden:
'xax xbx xcx !'
Eksempel
I dette eksemplet ser søkemønsteret
slik ut: bokstaven 'x', deretter IKKE liten
latinsk bokstav, så bokstaven 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Resultatet av kjøringen av koden:
'xaz xbz ! !'
Praktiske oppgaver
Skriv et regulært uttrykk som finner strenger
etter mønsteret: siffer 1, deretter et tegn
som ikke er 'e' og ikke 'x', siffer
2.
Skriv et regulært uttrykk som finner strenger
etter mønsteret: bokstaven 'x', deretter IKKE
et siffer fra 2 til 7, bokstaven
'z'.
Skriv et regulært uttrykk som finner strenger
etter mønsteret: bokstaven 'x', deretter IKKE
stor latinsk bokstav fra 1 eller flere
ganger, bokstaven 'z'.
Skriv et regulært uttrykk som finner strenger
etter mønsteret: bokstaven 'x', deretter IKKE
stor eller liten latinsk bokstav og
ikke et siffer fra 1 til 5 fra 1
eller flere ganger, bokstaven 'z'.