matches
method performs matching of full line, i.e. it is equivalent to find()
with '^abc$'. So, just use Pattern.compile("[a-zA-Z]").matcher(str).find()
instead. Then fix your regex. As @user unknown mentioned your regex actually matches only one character. You probably should say [a-zA-Z]+