我的代码如下

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],您在字符类中提到了Az的范围。 [符号在大写字母A到小z的范围内,因此它返回true。

请参阅ASCII table中位于Az范围内的符号。

关于java - 开头包含'['的字符串的错误匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25092339/

10-16 06:54
查看更多