Добро пожаловать в метод Java с ошибкой .matches()
... Он пытается и соответствует ВСЕМ входным данным.К сожалению, другие языки последовали его примеру: (
Если вы хотите увидеть, соответствует ли регулярное выражение вводимому тексту, используйте Pattern
, Matcher
и .find()
метод сопоставления:
Pattern p = Pattern.compile("[a-z]");
Matcher m = p.matcher(inputstring);
if (m.find())
// match
Если вы действительно хотите увидеть, если на входе есть только строчные буквы, вы можете использовать .matches()
, но вам нужно сопоставить один или несколько символов: добавьте +
к вашему классу символов,как в [a-z]+
. Или используйте ^[a-z]+$
и .find()
.