Invertierung von Zeichensätzen in Regex
Mit dem Zirkumflex '^' am Anfang
eckiger Klammern kann man das Gewünschte
invertieren. Wenn zum Beispiel der Befehl [ab]
nach dem Buchstaben 'a' oder 'b' sucht, dann
wird der Befehl [^ab] nach allen
Zeichen suchen, außer 'a' und 'b'.
Beispiel
In diesem Beispiel sieht das Suchmuster
folgendermaßen aus: Buchstabe 'x', dann NICHT Buchstabe
'a', nicht 'b' und nicht 'c',
dann Buchstabe 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Ergebnis der Codeausführung:
'xax xbx xcx !'
Beispiel
In diesem Beispiel sieht das Suchmuster
folgendermaßen aus: Buchstabe 'x', dann KEIN Kleinbuchstabe
des lateinischen Alphabets, dann Buchstabe 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Ergebnis der Codeausführung:
'xaz xbz ! !'
Praktische Aufgaben
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: Ziffer 1, dann Zeichen
nicht 'e' und nicht 'x', Ziffer
2.
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: Buchstabe 'x', dann NICHT
Ziffer von 2 bis 7, Buchstabe
'z'.
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: Buchstabe 'x', dann NICHT
Großbuchstabe des lateinischen Alphabets 1 Mal oder
öfter, Buchstabe 'z'.
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: Buchstabe 'x', dann NICHT
Groß- oder Kleinbuchstabe des lateinischen Alphabets und
nicht Ziffer von 1 bis 5 1
Mal oder öfter, Buchstabe 'z'.