正規表現の単語構成文字

Java正規表現の\wは、単語構成文字と説明されている。
実はこれ、アンダースコアにもマッチする。


一応、Javadocの説明。

\w 単語構成文字: [a-zA-Z_0-9]


実験くん。


public static void main(String[] args) {
Pattern pattern = Pattern.compile("[\\w]+");

String str1 = "abcdefg";
String str2 = "123456";
String str3 = "ABCDEFG";
String str4 = "___";
String str5 = "aa_AA_11";

System.out.println(pattern.matcher(str1).matches());
System.out.println(pattern.matcher(str2).matches());
System.out.println(pattern.matcher(str3).matches());
System.out.println(pattern.matcher(str4).matches());
System.out.println(pattern.matcher(str5).matches());
}

true
true
true
true
true


ところで、"_"って単語構成文字と言えるの?
どーでもいいんだが、[a-zA-Z_0-9]って1つだけ浮いてない?
なんか意味のある記号かと勘違いしてたよ・・・。