Das Caret-Zeichen innerhalb von Zeichensätzen in Python Regex
Wie Sie wissen, bewirkt ein Caret innerhalb von [ ]
eine Negation, wenn es am
Anfang der Klammern geschrieben wird. Daher ist es ein
Sonderzeichen innerhalb dieser Klammern. Um
das Caret als einfaches Zeichen zu erhalten, muss man es
entweder escapen oder es von der ersten Position
entfernen.
Beispiel
Im folgenden Beispiel ist das Suchmuster wie folgt:
das erste Zeichen ist alles außer 'd',
dann zwei Buchstaben 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)
print(res)
Als Ergebnis wird Folgendes in die Variable geschrieben:
'! ! ! dxx'
Beispiel
Jetzt ist das Suchmuster wie folgt: das erste
Zeichen ist 'd' oder '^',
dann zwei Buchstaben 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)
print(res)
Als Ergebnis wird Folgendes in die Variable geschrieben:
'axx bxx ! !'
Beispiel
Man muss das Caret nicht von der ersten Position entfernen, sondern kann es einfach mit einem Backslash escapen, dann repräsentiert es sich selbst:
txt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)
print(res)
Als Ergebnis wird Folgendes in die Variable geschrieben:
'axx bxx ! !'
Praktische Aufgaben
Gegeben ist der String:
txt = '^xx axx ^zz bkk @ss'
Schreiben Sie einen regulären Ausdruck, der Strings nach dem Muster findet: Caret oder At-Zeichen, dann zwei lateinische Buchstaben.
Gegeben ist der String:
txt = '^xx axx ^zz bkk @ss'
Schreiben Sie einen regulären Ausdruck, der Strings nach dem Muster findet: NICHT Caret und nicht At-Zeichen, und dann zwei lateinische Buchstaben.
Gegeben ist der String:
txt = '^xx axx ^zz bkk'
Schreiben Sie einen regulären Ausdruck, der Strings nach dem Muster findet: nicht Caret und kein Leerzeichen, und dann zwei lateinische Buchstaben.