JavaScriptの正規表現における集合内のキャレット記号

ご存知のように、 [ ] 内のキャレットは、 括弧の先頭に書かれると否定を行います。 したがって、この括弧内では特殊文字となります。 キャレットを文字として扱うためには、 エスケープするか、先頭以外の位置に移動する必要があります。

例

次の例では、検索パターンは次のとおりです: 最初の文字は 'd' 以外、その後ろに 2つの 'x' 文字。

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

結果、変数には次の値が格納されます:

javascript'! ! ! dxx'

例

今回の検索パターンは次のとおりです: 最初の文字は 'd' または '^'、その後ろに 2つの 'x' 文字:

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

結果、変数には次の値が格納されます:

javascript'axx bxx ! !'

例

キャレットを先頭から移動させなくても、 バックスラッシュでエスケープすることで、 それ自体を表す文字にすることができます:

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

結果、変数には次の値が格納されます:

javascript'axx bxx ! !'

実践的な課題

Задание 1

次の文字列が与えられています:

javascriptlet str = '^xx axx ^zz bkk @ss';

次のパターンに一致する文字列を見つける正規表現を書いてください: キャレットまたはアットマーク、その後に 2つのラテン文字。

Задание 2

次の文字列が与えられています:

javascriptlet str = '^xx axx ^zz bkk @ss';

次のパターンに一致する文字列を見つける正規表現を書いてください: キャレットでもアットマークでもなく、その後に 2つのラテン文字。

Задание 3

次の文字列が与えられています:

javascriptlet str = '^xx axx ^zz bkk';

次のパターンに一致する文字列を見つける正規表現を書いてください: キャレットでも空白でもなく、その後に 2つのラテン文字。