import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(iPhone|iPad|iPod|Watch)(\\d{1,2}),(\\d{1}).*$";
final String string = "iPhone1,1 : iPhone\n"
+ "iPhone1,2 : iPhone 3G\n"
+ "iPhone2,1 : iPhone 3GS\n"
+ "iPhone3,1 : iPhone 4\n"
+ "iPhone3,2 : iPhone 4 GSM Rev A\n"
+ "iPhone3,3 : iPhone 4 CDMA\n"
+ "iPhone4,1 : iPhone 4S\n"
+ "iPhone5,1 : iPhone 5 (GSM)\n"
+ "iPhone5,2 : iPhone 5 (GSM+CDMA)\n"
+ "iPhone5,3 : iPhone 5C (GSM)\n"
+ "iPhone5,4 : iPhone 5C (Global)\n"
+ "iPhone6,1 : iPhone 5S (GSM)\n"
+ "iPhone6,2 : iPhone 5S (Global)\n"
+ "iPhone7,1 : iPhone 6 Plus\n"
+ "iPhone7,2 : iPhone 6\n"
+ "iPhone8,1 : iPhone 6s\n"
+ "iPhone8,2 : iPhone 6s Plus\n"
+ "iPhone8,4 : iPhone SE (GSM)\n"
+ "iPhone9,1 : iPhone 7\n"
+ "iPhone9,2 : iPhone 7 Plus\n"
+ "iPhone9,3 : iPhone 7\n"
+ "iPhone9,4 : iPhone 7 Plus\n"
+ "iPhone10,1 : iPhone 8\n"
+ "iPhone10,2 : iPhone 8 Plus\n"
+ "iPhone10,3 : iPhone X Global\n"
+ "iPhone10,4 : iPhone 8\n"
+ "iPhone10,5 : iPhone 8 Plus\n"
+ "iPhone10,6 : iPhone X GSM\n"
+ "iPhone11,2 : iPhone XS\n"
+ "iPhone11,4 : iPhone XS Max\n"
+ "iPhone11,6 : iPhone XS Max Global\n"
+ "iPhone11,8 : iPhone XR\n"
+ "iPhone12,1 : iPhone 11\n"
+ "iPhone12,3 : iPhone 11 Pro\n"
+ "iPhone12,5 : iPhone 11 Pro Max\n"
+ "iPhone12,8 : iPhone SE 2nd Gen\n"
+ "iPhone13,1 : iPhone 12 Mini\n"
+ "iPhone13,2 : iPhone 12\n"
+ "iPhone13,3 : iPhone 12 Pro\n"
+ "iPhone13,4 : iPhone 12 Pro Max\n"
+ "iPhone14,2 : iPhone 13 Pro\n"
+ "iPhone14,3 : iPhone 13 Pro Max\n"
+ "iPhone14,4 : iPhone 13 Mini\n"
+ "iPhone14,5 : iPhone 13\n"
+ "iPhone14,6 : iPhone SE 3rd Gen\n"
+ "iPhone14,7 : iPhone 14\n"
+ "iPhone14,8 : iPhone 14 Plus\n"
+ "iPhone15,2 : iPhone 14 Pro\n"
+ "iPhone15,3 : iPhone 14 Pro Max\n\n"
+ "iPod1,1 : 1st Gen iPod\n"
+ "iPod2,1 : 2nd Gen iPod\n"
+ "iPod3,1 : 3rd Gen iPod\n"
+ "iPod4,1 : 4th Gen iPod\n"
+ "iPod5,1 : 5th Gen iPod\n"
+ "iPod7,1 : 6th Gen iPod\n"
+ "iPod9,1 : 7th Gen iPod\n\n"
+ "iPad1,1 : iPad\n"
+ "iPad1,2 : iPad 3G\n"
+ "iPad2,1 : 2nd Gen iPad\n"
+ "iPad2,2 : 2nd Gen iPad GSM\n"
+ "iPad2,3 : 2nd Gen iPad CDMA\n"
+ "iPad2,4 : 2nd Gen iPad New Revision\n"
+ "iPad3,1 : 3rd Gen iPad\n"
+ "iPad3,2 : 3rd Gen iPad CDMA\n"
+ "iPad3,3 : 3rd Gen iPad GSM\n"
+ "iPad2,5 : iPad mini\n"
+ "iPad2,6 : iPad mini GSM+LTE\n"
+ "iPad2,7 : iPad mini CDMA+LTE\n"
+ "iPad3,4 : 4th Gen iPad\n"
+ "iPad3,5 : 4th Gen iPad GSM+LTE\n"
+ "iPad3,6 : 4th Gen iPad CDMA+LTE\n"
+ "iPad4,1 : iPad Air (WiFi)\n"
+ "iPad4,2 : iPad Air (GSM+CDMA)\n"
+ "iPad4,3 : 1st Gen iPad Air (China)\n"
+ "iPad4,4 : iPad mini Retina (WiFi)\n"
+ "iPad4,5 : iPad mini Retina (GSM+CDMA)\n"
+ "iPad4,6 : iPad mini Retina (China)\n"
+ "iPad4,7 : iPad mini 3 (WiFi)\n"
+ "iPad4,8 : iPad mini 3 (GSM+CDMA)\n"
+ "iPad4,9 : iPad Mini 3 (China)\n"
+ "iPad5,1 : iPad mini 4 (WiFi)\n"
+ "iPad5,2 : 4th Gen iPad mini (WiFi+Cellular)\n"
+ "iPad5,3 : iPad Air 2 (WiFi)\n"
+ "iPad5,4 : iPad Air 2 (Cellular)\n"
+ "iPad6,3 : iPad Pro (9.7 inch, WiFi)\n"
+ "iPad6,4 : iPad Pro (9.7 inch, WiFi+LTE)\n"
+ "iPad6,7 : iPad Pro (12.9 inch, WiFi)\n"
+ "iPad6,8 : iPad Pro (12.9 inch, WiFi+LTE)\n"
+ "iPad6,11 : iPad (2017)\n"
+ "iPad6,12 : iPad (2017)\n"
+ "iPad7,1 : iPad Pro 2nd Gen (WiFi)\n"
+ "iPad7,2 : iPad Pro 2nd Gen (WiFi+Cellular)\n"
+ "iPad7,3 : iPad Pro 10.5-inch 2nd Gen\n"
+ "iPad7,4 : iPad Pro 10.5-inch 2nd Gen\n"
+ "iPad7,5 : iPad 6th Gen (WiFi)\n"
+ "iPad7,6 : iPad 6th Gen (WiFi+Cellular)\n"
+ "iPad7,11 : iPad 7th Gen 10.2-inch (WiFi)\n"
+ "iPad7,12 : iPad 7th Gen 10.2-inch (WiFi+Cellular)\n"
+ "iPad8,1 : iPad Pro 11 inch 3rd Gen (WiFi)\n"
+ "iPad8,2 : iPad Pro 11 inch 3rd Gen (1TB, WiFi)\n"
+ "iPad8,3 : iPad Pro 11 inch 3rd Gen (WiFi+Cellular)\n"
+ "iPad8,4 : iPad Pro 11 inch 3rd Gen (1TB, WiFi+Cellular)\n"
+ "iPad8,5 : iPad Pro 12.9 inch 3rd Gen (WiFi)\n"
+ "iPad8,6 : iPad Pro 12.9 inch 3rd Gen (1TB, WiFi)\n"
+ "iPad8,7 : iPad Pro 12.9 inch 3rd Gen (WiFi+Cellular)\n"
+ "iPad8,8 : iPad Pro 12.9 inch 3rd Gen (1TB, WiFi+Cellular)\n"
+ "iPad8,9 : iPad Pro 11 inch 4th Gen (WiFi)\n"
+ "iPad8,10 : iPad Pro 11 inch 4th Gen (WiFi+Cellular)\n"
+ "iPad8,11 : iPad Pro 12.9 inch 4th Gen (WiFi)\n"
+ "iPad8,12 : iPad Pro 12.9 inch 4th Gen (WiFi+Cellular)\n"
+ "iPad11,1 : iPad mini 5th Gen (WiFi)\n"
+ "iPad11,2 : iPad mini 5th Gen\n"
+ "iPad11,3 : iPad Air 3rd Gen (WiFi)\n"
+ "iPad11,4 : iPad Air 3rd Gen\n"
+ "iPad11,6 : iPad 8th Gen (WiFi)\n"
+ "iPad11,7 : iPad 8th Gen (WiFi+Cellular)\n"
+ "iPad12,1 : iPad 9th Gen (WiFi)\n"
+ "iPad12,2 : iPad 9th Gen (WiFi+Cellular)\n"
+ "iPad14,1 : iPad mini 6th Gen (WiFi)\n"
+ "iPad14,2 : iPad mini 6th Gen (WiFi+Cellular)\n"
+ "iPad13,1 : iPad Air 4th Gen (WiFi)\n"
+ "iPad13,2 : iPad Air 4th Gen (WiFi+Cellular)\n"
+ "iPad13,4 : iPad Pro 11 inch 5th Gen\n"
+ "iPad13,5 : iPad Pro 11 inch 5th Gen\n"
+ "iPad13,6 : iPad Pro 11 inch 5th Gen\n"
+ "iPad13,7 : iPad Pro 11 inch 5th Gen\n"
+ "iPad13,8 : iPad Pro 12.9 inch 5th Gen\n"
+ "iPad13,9 : iPad Pro 12.9 inch 5th Gen\n"
+ "iPad13,10 : iPad Pro 12.9 inch 5th Gen\n"
+ "iPad13,11 : iPad Pro 12.9 inch 5th Gen\n"
+ "iPad13,16 : iPad Air 5th Gen (WiFi)\n"
+ "iPad13,17 : iPad Air 5th Gen (WiFi+Cellular)\n"
+ "iPad13,18: iPad 10th Gen\n"
+ "iPad13,19: iPad 10th Gen\n"
+ "iPad14,3-A: iPad Pro 11 inch 4th Gen\n"
+ "iPad14,3-B: iPad Pro 11 inch 4th Gen\n"
+ "iPad14,4-A: iPad Pro 11 inch 4th Gen\n"
+ "iPad14,4-B: iPad Pro 11 inch 4th Gen\n"
+ "iPad14,5-A: iPad Pro 12.9 inch 6th Gen\n"
+ "iPad14,5-B: iPad Pro 12.9 inch 6th Gen\n"
+ "iPad14,6-A: iPad Pro 12.9 inch 6th Gen\n"
+ "iPad14,6-B: iPad Pro 12.9 inch 6th Gen\n\n"
+ "Watch1,1 : Apple Watch 38mm case\n"
+ "Watch1,2 : Apple Watch 42mm case\n"
+ "Watch2,6 : Apple Watch Series 1 38mm case\n"
+ "Watch2,7 : Apple Watch Series 1 42mm case\n"
+ "Watch2,3 : Apple Watch Series 2 38mm case\n"
+ "Watch2,4 : Apple Watch Series 2 42mm case\n"
+ "Watch3,1 : Apple Watch Series 3 38mm case (GPS+Cellular)\n"
+ "Watch3,2 : Apple Watch Series 3 42mm case (GPS+Cellular)\n"
+ "Watch3,3 : Apple Watch Series 3 38mm case (GPS)\n"
+ "Watch3,4 : Apple Watch Series 3 42mm case (GPS)\n"
+ "Watch4,1 : Apple Watch Series 4 40mm case (GPS)\n"
+ "Watch4,2 : Apple Watch Series 4 44mm case (GPS)\n"
+ "Watch4,3 : Apple Watch Series 4 40mm case (GPS+Cellular)\n"
+ "Watch4,4 : Apple Watch Series 4 44mm case (GPS+Cellular)\n"
+ "Watch5,1 : Apple Watch Series 5 40mm case (GPS)\n"
+ "Watch5,2 : Apple Watch Series 5 44mm case (GPS)\n"
+ "Watch5,3 : Apple Watch Series 5 40mm case (GPS+Cellular)\n"
+ "Watch5,4 : Apple Watch Series 5 44mm case (GPS+Cellular)\n"
+ "Watch5,9 : Apple Watch SE 40mm case (GPS)\n"
+ "Watch5,10 : Apple Watch SE 44mm case (GPS)\n"
+ "Watch5,11 : Apple Watch SE 40mm case (GPS+Cellular)\n"
+ "Watch5,12 : Apple Watch SE 44mm case (GPS+Cellular)\n"
+ "Watch6,1 : Apple Watch Series 6 40mm case (GPS)\n"
+ "Watch6,2 : Apple Watch Series 6 44mm case (GPS)\n"
+ "Watch6,3 : Apple Watch Series 6 40mm case (GPS+Cellular)\n"
+ "Watch6,4 : Apple Watch Series 6 44mm case (GPS+Cellular)\n"
+ "Watch6,6 : Apple Watch Series 7 41mm case (GPS)\n"
+ "Watch6,7 : Apple Watch Series 7 45mm case (GPS)\n"
+ "Watch6,8 : Apple Watch Series 7 41mm case (GPS+Cellular)\n"
+ "Watch6,9 : Apple Watch Series 7 45mm case (GPS+Cellular)\n"
+ "Watch6,10 : Apple Watch SE 40mm case (GPS)\n"
+ "Watch6,11 : Apple Watch SE 44mm case (GPS)\n"
+ "Watch6,12 : Apple Watch SE 40mm case (GPS+Cellular)\n"
+ "Watch6,13 : Apple Watch SE 44mm case (GPS+Cellular)\n"
+ "Watch6,14 : Apple Watch Series 8 41mm case (GPS)\n"
+ "Watch6,15 : Apple Watch Series 8 45mm case (GPS)\n"
+ "Watch6,16 : Apple Watch Series 8 41mm case (GPS+Cellular)\n"
+ "Watch6,17 : Apple Watch Series 8 45mm case (GPS+Cellular)\n"
+ "Watch6,18 : Apple Watch Ultra";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html