String input = "$GPGGA,1714.0,3723.465874,N,12202.26954,W,2,6,1.2,18.893,M,-25.669,M,2.0,0031*4F";
Pattern pattern = Pattern.compile("^\\$GPGGA,[\\d\\.]*,([\\d\\.]+),([NS]),([\\d\\.]+),([EW]),.*");
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
for(int i=0; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + " = " + matcher.group(i));
}
} else {
throw new IllegalArgumentException("Invalid input!");
}
输出:
Group 0 = $GPGGA,1714.0,3723.465874,N,12202.26954,W,2,6,1.2,18.893,M,-25.669,M,2.0,0031*4F
Group 1 = 3723.465874
Group 2 = N
Group 3 = 12202.26954
Group 4 = W