只接受字符、数字和特殊字符的正则表达式,而不是 [重复]

Posted

技术标签:

【中文标题】只接受字符、数字和特殊字符的正则表达式,而不是 [重复]【英文标题】:Regular expression that accepts only characters, numbers and special characters not [duplicate] 【发布时间】:2014-08-26 18:07:22 【问题描述】:

我想要一个接受输入字符(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);
 
如果输入为:hellotableFireBlaKc

checkString 应该返回 true,等等。

如果输入为

checkString 应返回 false:10tabl_e+hel/lo

我该怎么做?谢谢

【问题讨论】:

这篇文章我认为是你的答案***.com/questions/3617797/regex-to-match-only-letters 【参考方案1】:

使用这样的东西:

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

【讨论】:

谢谢,很高兴它有帮助。 :)

以上是关于只接受字符、数字和特殊字符的正则表达式,而不是 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

匹配字符串中至少 1 个数字和 1 个字符的正则表达式模式

java正则表达式 过滤特殊字符 只允许中文、字母和数字, 该怎么写?急。。。

Java用正则表达式 过滤特殊字符,只允许中文、字母或数字,该怎么写?急。。。。

正则表达式中的特殊字符

带有字母、数字、任意顺序的可选特殊字符的正则表达式单词

正则表达式仅查找数字+文本的字母数字组合,无特殊