检查字符串中的3个字母然后是3个数字

时间:2019-03-14 11:59:11

标签: java

我需要能够检查一个字符串,以使其中的前3个字符为字母,而后3个字符为数字,例如rego之类的“ ABC123”,并确保其不是“ 123ABC”或“ 1A2B3C”之类的

5 个答案:

答案 0 :(得分:0)

您可以在正则表达式中使用此模式:

([a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9])

如果您之间有任何东西,可以使用:

([a-zA-Z][a-zA-Z][a-zA-Z].*[0-9][0-9][0-9])

答案 1 :(得分:0)

使用以下内容:

string.matches("[a-zA-Z]{3}.*[0-9]{3}");

答案 2 :(得分:0)

尝试此模式^[A-Za-z]{3}.*[0-9]{3}$

String test = "ABC123";
Matcher matcher = Pattern.compile("^[A-Za-z]{3}.*[0-9]{3}$").matcher(test);
if (matcher.find()) {
      System.out.print(matcher.group());
}

输出:

ABC123

答案 3 :(得分:0)

您可以像这样检查它:

    if (!"AB1C23".matches("^([A-Za-z]{3}[0-9]{3})")) {
        System.out.println("Invalid!!");
    }

答案 4 :(得分:-1)

  • \d匹配一个数字

  • [a-zA-Z]匹配字母

  • {3}是与3个重复完全匹配的量词

  • ()小组比赛

  • ([a-zA-Z]{3})(\\d{3})

public static void main(String[] args) {

        Matcher matcher = Pattern.compile("([a-zA-Z]{3})(\\d{3})").matcher("ABC215");
//      Matcher matcher = Pattern.compile("([a-zA-Z]{3})(\\d{3})").matcher("1A2B3C"); //Macher not find :)
        if (matcher.find()) {
            System.out.println(matcher.group(0)); //ABC215
            System.out.println(matcher.group(1)); //ABC
            System.out.println(matcher.group(2)); //215
        }
    }

Font