Я хочу регулярное выражение, которое принимает в качестве входных символов (A..Z или a..z) и не принимает числа и специальные символы. Я написал этот метод и эти шаблоны, но он не работает:
public static Pattern patternString = Pattern.compile("\\D*");
public static Pattern special = Pattern.compile("[!@#$%&*,.()_+=|<>?{}\\[\\]~-]");
public static boolean checkString(String input) {
boolean bool_string = patternString.matcher(input).matches();
boolean bool_special = !special.matcher(input).matches();
return (bool_string && bool_special);
}
checkString
должен возвращать значение true, если вход: hello, table, Fire, BlaKc и т.д.
checkString
должен возвращать значение false, если вход: 10, tabl_e, +, hel/lo и т.д.
Как я могу это сделать? спасибо
Используйте что-то вроде этого:
if (subjectString.matches("[a-zA-Z]+")) {
// It matched!
}
else { // nah, it didn't match...
}
^
и $
потому что метод matches
ищет только полные совпадения[a-zA-Z]
- это класс символов, который соответствует одному символу в диапазонах az
или AZ
+
позволяет двигателю соответствовать одному или более раз