JavaScriptの正規表現における集合内のキャレット記号
ご存知のように、 [ ] 内のキャレットは、
括弧の先頭に書かれると否定を行います。
したがって、この括弧内では特殊文字となります。
キャレットを文字として扱うためには、
エスケープするか、先頭以外の位置に移動する必要があります。
例
次の例では、検索パターンは次のとおりです:
最初の文字は 'd' 以外、その後ろに
2つの 'x' 文字。
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[^d]xx/g, '!');
結果、変数には次の値が格納されます:
'! ! ! dxx'
例
今回の検索パターンは次のとおりです: 最初の文字は
'd' または '^'、その後ろに
2つの 'x' 文字:
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[d^]xx/g, '!');
結果、変数には次の値が格納されます:
'axx bxx ! !'
例
キャレットを先頭から移動させなくても、 バックスラッシュでエスケープすることで、 それ自体を表す文字にすることができます:
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[\^d]xx/g, '!');
結果、変数には次の値が格納されます:
'axx bxx ! !'
実践的な課題
次の文字列が与えられています:
let str = '^xx axx ^zz bkk @ss';
次のパターンに一致する文字列を見つける正規表現を書いてください: キャレットまたはアットマーク、その後に 2つのラテン文字。
次の文字列が与えられています:
let str = '^xx axx ^zz bkk @ss';
次のパターンに一致する文字列を見つける正規表現を書いてください: キャレットでもアットマークでもなく、その後に 2つのラテン文字。
次の文字列が与えられています:
let str = '^xx axx ^zz bkk';
次のパターンに一致する文字列を見つける正規表現を書いてください: キャレットでも空白でもなく、その後に 2つのラテン文字。