String#matches() に渡す正規表現の書き方


String#matches()は、部分一致ができない。
「数字じゃないものを含むか?」をチェックしようとして

    if (s.matches("\\D")) { ... }

と書くと、「頭から最後まで数字じゃないもの」だけがmatchする。
Perlみたいに部分一致させたかったら

    if (s.matches(".*\\D.*")) { ... }

と、頭と最後に .* をつけなくてはならない。