尝试这个正则表达式^(A|P)(\d+)(\w+?)(M|F)$.这将有效,但有些条件:
1)它不会检查日期有效性.
2)输出应完全按照您的描述输出,否则可能会失败.
String str = "A10102012MikeM";
String p = "^([A|P])(\\d+)(\\w+?)(M|F)$";
Pattern pattern = Pattern.compile(p);
Matcher matcher = pattern.matcher(str);
if (matcher.find()){
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
System.out.println(matcher.group(3));
System.out.println(matcher.group(4));
}
Run Code Online (Sandbox Code Playgroud)
输出=
A 10102012 Mike M