Das Caret-Zeichen innerhalb von Zeichenklassen in JavaScript Regex
Wie Sie wissen, bewirkt das Caret-Zeichen innerhalb von [ ]
eine Negation, wenn es am Anfang der Klammern geschrieben wird.
Daher ist es ein Sonderzeichen innerhalb
dieser Klammern. Um das Caret-Zeichen als literal 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 'x'-Buchstaben.
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[^d]xx/g, '!');
Als Ergebnis wird in die Variable Folgendes geschrieben:
'! ! ! dxx'
Beispiel
Nun ist das Suchmuster wie folgt: das erste Zeichen
ist 'd' oder '^', dann zwei
'x'-Buchstaben:
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[d^]xx/g, '!');
Als Ergebnis wird in die Variable Folgendes geschrieben:
'axx bxx ! !'
Beispiel
Man muss das Caret nicht von der ersten Position entfernen, sondern kann es einfach mit einem Backslash escapen, und es repräsentiert dann sich selbst:
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[\^d]xx/g, '!');
Als Ergebnis wird in die Variable Folgendes geschrieben:
'axx bxx ! !'
Praktische Aufgaben
Gegeben sei der String:
let str = '^xx axx ^zz bkk @ss';
Schreiben Sie einen regulären Ausdruck, der die Strings nach folgendem Muster findet: Caret oder At-Zeichen, gefolgt von zwei lateinischen Buchstaben.
Gegeben sei der String:
let str = '^xx axx ^zz bkk @ss';
Schreiben Sie einen regulären Ausdruck, der die Strings nach folgendem Muster findet: NICHT Caret und nicht At-Zeichen, gefolgt von zwei lateinischen Buchstaben.
Gegeben sei der String:
let str = '^xx axx ^zz bkk';
Schreiben Sie einen regulären Ausdruck, der die Strings nach folgendem Muster findet: nicht Caret und nicht Leerzeichen, gefolgt von zwei lateinischen Buchstaben.