import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(^\\w+\\s?\\D+)\\s?(\\d+[,\\d+]*)\\s?(\\d+[,\\d+]*)\\s?(\\d+[,\\d+]*)\\s?(\\d+[,\\d+]*)\\s?(\\d+[,\\d+]*)\\s?";
final String string = "Weapon Type/Force Used 2000 2001 2002 2003 2004 5-Year Total\n"
+ "Personal Weapons 12,945 17,830 20,636 21,933 25,050 98,394\n"
+ "None 2,702 3,114 2,974 3,294 4,176 16,260\n"
+ "Other 1,775 2,311 2,332 2,420 2,842 11,680\n"
+ "Knife/Cutting Instrument 1,511 2,082 2,080 2,445 2,852 10,970\n"
+ "Handgun 307 376 398 430 497 2,008\n"
+ "Blunt Object 283 404 394 455 469 2,005\n"
+ "Firearm (type not stated) 94 131 103 135 146 609\n"
+ "Other Firearm 74 107 92 155 154 582\n"
+ "Explosives 145 139 93 89 95 561\n"
+ "Motor Vehicle 43 52 46 59 71 271\n"
+ "Fire/Incendiary Device 36 34 42 36 88 236\n"
+ "Rifle 23 33 33 24 37 150\n"
+ "Shotgun 15 24 30 19 24 112\n"
+ "Drugs/Narcotics/Sleeping Pills 9 4 8 14 6 41\n"
+ "Poison 1 8 4 11 16 40\n"
+ "Asphyxiation 2 1 3 6 2 14\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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