我需要能够检查一个字符串,以使其中的前3个字符为字母,而后3个字符为数字,例如rego之类的“ ABC123”,并确保其不是“ 123ABC”或“ 1A2B3C”之类的
答案 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
}
}