我的代码如下
public static void main(String[] args) {
System.out.println(validateusername("$asd123"));
}
static boolean validateusername(String s)
{
if(s.matches("[a-zA-z]+[0-9]*"))
return true;
else return false;
}
'[abc1'
'['字符不应该被视为a-zA-z,为什么赋予它正确。
但是对于任何其他特殊字符,它给出的是false,'_'(下划线)和'['它给出的是true;
我尝试过的-
-我尝试将'^'放在字符串的开头,但仍无法正常工作。
-我试图通过放置'/'来转义'['字符,但是没有用。
最佳答案
您的模式是[a-zA-z]
,您在字符类中提到了A
到z
的范围。 [
符号在大写字母A
到小z
的范围内,因此它返回true。
请参阅ASCII table中位于A
到z
范围内的符号。
关于java - 开头包含'['的字符串的错误匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25092339/