つい先日 \b
がアンカーであると知って驚いたので共有。
(注意: \b
は []
で囲ってないときはアンカーですが、[]
で囲うとアンカーではなく文字扱いになります)
アンカーとは
それ自体にはマッチせず、位置を示すものです。
マッチしないので、replaceで置換する時も対象になりません。
よく知られているアンカーには ^
と $
があります。これらは検索してもマッチしませんよね。なんとなく「アンカー」が何か掴めたでしょうか?
具体例
'JavaScript'.replace(/Java\b/, 'JAVA!'); // -> JavaScript 'Java is a god language'.replace(/Java\b/, 'JAVA!'); // -> JAVA! is a god language