正規表現ではキャレット(^)は特別な役割をしている。
- 正規表現の先頭にキャレットがあるとそれは対象になる文字列の先頭でマッチングを検証することを意味する。
^abc
の正規表現では文字列abcdはマッチするが、dabcはマッチしない。
- 文字クラス(角括弧で括られた文字の和集合、例[0-9abc]。この位置で和集合のどれかの文字であるとマッチする)の先頭にキャレットがあるとその補集合、つまりこの和集合のどの文字でもないとマッチすることを意味する。
[^0-9abc]
この正規表現ではこの和集合以外の文字であるとマッチする。
[^a]
これも有効な表現である。
- この二つの位置以外ではキャレットは特別な意味を持たない。因みに
^a
は先頭の文字がaである文字列でマッチする。
^[^a]
は先頭の文字がa以外である文字列でマッチする。