如何检查字符串的前四个字符是否为 A-G 而后三个字符是否为数字?

How to check if the first four characters of a string are A-G and the last 3 are numeric?

我一直在研究这个问题,我觉得最好将字符串(AAAA-123 或 AAA123)分成 2 个字符串并进行比较。我可以确保它们都是数字字符,但要确保它们的格式正确,而且我不觉得我一定遗漏了什么。

   Name = txtfClass.getText();
        if((Name.length()==8)&&(Name.matches("[a-gA-G]-\d{3}"))){
            checker(Name); 
            System.out.println("it works");
        }

当 Name = ABCD-123 时,该代码将不起作用。我错过了什么?如果您想知道这里 checker(Name) 是:

    public boolean checker(String name){
    CourseAbrv = name.substring(0, 4);
    System.out.println(CourseAbrv);
    return false;
}

它returns没什么

将您的正则表达式更改为 Name.matches("[A-G]{4}-\d{3}")[a-gA-G] 匹配单个字符。

注意:这只匹配大写 A-G。您可以使用 a-g 而不是 A-G 来仅匹配小写字母。