我想要一个接受输入字符(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);
}
如果输入为: hello , table , Fire , BlaKc checkString
应返回true >等等
如果输入为 10 , tabl_e , + , hel / lo <,则 checkString
应返回false / em>等。
我该怎么做?谢谢
答案 0 :(得分:1)
使用类似的东西:
if (subjectString.matches("[a-zA-Z]+")) {
// It matched!
}
else { // nah, it didn't match...
}
^
和$
锚定正则表达式,因为matches
方法仅查找完整匹配[a-zA-Z]
是一个字符类,匹配范围a-z
或A-Z
+
量词使引擎匹配一次或多次