import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\b(?<!\\d[,.])(?<!\\d-)((?:\\d+/)?\\d+(?:[,.]\\d+)*)\\b(\\s*(\\w*)/)?\\s*((?(2)\\w+|\\w+\\s+per\\s+\\w+))(?=\\s*(?:[,)]|$))";
final String string = "3M™ Victory Series™ Bracket MBT™ 017-873, .022, UL3, 0T/8A, Hk, 5/Pack\n"
+ " 5/Pack\n"
+ "3M™ BX™ Dual Reader Protective Eyewear 11458-00000-20, Clear Anti-Fog Lens, Silver/Black Frame, +2.0 Top/Bottom Diopter, 20 ea/Case\n"
+ " 20 ea/Case\n"
+ "4220VDS-QCSHC/900-000/A CABINET EMPTY\n"
+ " No units\n"
+ "3M™ Bumpon™ Protective Product SJ5476 Fluorescent Yellow, 3.000/Case\n"
+ " 3.000/Case\n"
+ "3M™ Bumpon™ Protective Products SJ61A2 Black, 10,000/Case\n"
+ " 10,000/Case\n\n"
+ "QWERTYUI PN-DR, Coarse, TR, 1-1/2 in, 50/Carton, 200 ea/Case, Dispenser Pack\n"
+ " 50/Carton, 200 ea/Case\n"
+ "2841 PC GREY AS/AF (20/CASE)\n"
+ " 20/CASE\n"
+ "TYPE.2 86421-K40-F000, 1 Set/Pack, 100 Packs/Case\n"
+ " 1 Set/Pack, 100 Packs/Case\n"
+ "RTYU 31655, 240+, 6 in, 50 Discs/Roll, 6 Rolls/Case\n"
+ " 50 Discs/Roll, 6 Rolls/Case\n"
+ "Clear, 1 in x 36 yd, 4.8 mil, 24 rolls per case\n"
+ " 24 rolls per case\n"
+ "3M™ Victory Series™ Bracket MBT™ 017-873, .022, UL3, 0T/8A, Hk, 5/Pack\n"
+ " 5/Pack\n"
+ "3M™ BX™ Dual Reader Protective Eyewear 11458-00000-20, Clear Anti-Fog Lens, Silver/Black Frame, +2.0 Top/Bottom Diopter, 20 ea/Case\n"
+ " 20 ea/Case\n"
+ "4220VDS-QCSHC/900-000/A CABINET EMPTY\n"
+ " No units\n"
+ "3M™ Bumpon™ Protective Product SJ5476 Fluorescent Yellow, 3.000/Case\n"
+ " 3.000/Case\n"
+ "3M™ Bumpon™ Protective Products SJ61A2 Black, 10,000/Case\n"
+ " 10,000/Case";
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