正则表达式,只接受字符,数字和特殊字符

时间:2014-07-05 21:10:39

标签: java regex

我想要一个接受输入字符(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>等。

我该怎么做?谢谢

1 个答案:

答案 0 :(得分:1)

使用类似的东西:

if (subjectString.matches("[a-zA-Z]+")) {
    // It matched!
  } 
else {  // nah, it didn't match...  
     } 
  • 无需使用^$锚定正则表达式,因为matches方法仅查找完整匹配
  • [a-zA-Z]是一个字符类,匹配范围a-zA-Z
  • 中的一个字符
  • +量词使引擎匹配一次或多次