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.

javascriptlet str = 'axx bxx ^xx dxx';
let res = str.replace(/[^d]xx/g, '!');

Als Ergebnis wird in die Variable Folgendes geschrieben:

javascript'! ! ! dxx'

Beispiel

Nun ist das Suchmuster wie folgt: das erste Zeichen ist 'd' oder '^', dann zwei 'x'-Buchstaben:

javascriptlet str = 'axx bxx ^xx dxx';
let res = str.replace(/[d^]xx/g, '!');

Als Ergebnis wird in die Variable Folgendes geschrieben:

javascript'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:

javascriptlet str = 'axx bxx ^xx dxx';
let res = str.replace(/[\^d]xx/g, '!');

Als Ergebnis wird in die Variable Folgendes geschrieben:

javascript'axx bxx ! !'

Praktische Aufgaben

Задание 1

Gegeben sei der String:

javascriptlet 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.

Задание 2

Gegeben sei der String:

javascriptlet 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.

Задание 3

Gegeben sei der String:

javascriptlet 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.