今日の間違い

javaString#matches(String regex)は文字列全体とのマッチをとるため、

"hoge".matches("o")

はfalseになる。つまり、javascript

"hoge".match(/^o$/)

相当なのだ。
そういえばそうだ。すっかり忘れてたよ。
昔はPerlRubyJavaScriptも知らなかったし、Java1.4で正規表現を覚えたくらいなので、別におかしいとは思わなかったけど、今考えるとちょっと違和感がある仕様だと思う。何のための ^ や $ なのか。

中間一致したければ、"hoge".matches(".*o.*")かMatcher#find()使えってか orz