正则表达式只接受字符、数字和特殊字符,不包括

36 浏览
0 Comments

正则表达式只接受字符、数字和特殊字符,不包括

这个问题已经有了答案

正则表达式匹配只有字母

我想要一个正则表达式,可以接受输入的字符(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如果输入是:hello,table,Fire,BlaKc等等,则应返回true。

checkString如果输入是:10,tabl_e,+,hel/lo等,则应返回false。

我该如何做到这一点?谢谢

admin 更改状态以发布 2023年5月24日
0
0 Comments

使用以下方法:

if (subjectString.matches("[a-zA-Z]+")) {
    // It matched!
  } 
else {  // nah, it didn't match...  
     } 

  • 不需要使用^$锚定正则表达式,因为matches方法只寻找完全匹配的内容
  • [a-zA-Z]是一个字符类,匹配a-zA-Z中的一个字符
  • +量词让搜索引擎匹配至少一次
0