正規表現\wが対応している具体的な内容

正規表現に\wというのがあります。
word characterの略と思われます。
一般に「英単語に使われる文字」を抽出する際に使われます。
いつも漠然と使っていましたが、具体的にはどの文字に対応しているのでしょうか。

先に答えを書きます。

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz

これはJavaScriptで実際にコードを書いて\wにヒットするものを出力したものです。
半角の数字、英大文字、英小文字、アンダースコアが該当します。
スペース、ドットなどは該当しません。
[0-9A-Za-z_]と書くのと同じです。

蛇足ですがこれを出力する際に使ったコードです。

// 英数字(word characters)を格納する配列
const wordCharacters = [];

// ASCIIコード32から126までの文字を走査
for (let asciiCode = 32; asciiCode < 127; asciiCode++) {
  // ASCIIコードを文字に変換
  const currentCharacter = String.fromCharCode(asciiCode);
 
  // 英数字(word character)の場合のみ配列に追加
  if (currentCharacter.match(/\w/)) {
    wordCharacters.push(currentCharacter);
  }
}

// 抽出した英数字を文字列として出力
console.log(wordCharacters.join(""));

コメント

タイトルとURLをコピーしました