import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<!\\d|-|\\/|to|\\$)(?<!\\$(\\d)\\.)([1-9][0-9]{0,2}(\\.\\d{0,2})?\\s?)(lbs|lb|LBS|LB|KG|kg|G|g|L|l+)(?!\\d|\\w)";
final String string = "10lb Potato bag\n"
+ "Apples Gld Delicious 3lb\n"
+ "Grandfer Rocha Pear2.5lbs\n"
+ "CHIN.MAND.5LB\n"
+ "Batata Veg (10LB)\n"
+ "SIG 170LB99 Legging SzB 1ea\n"
+ "ARJO CDA1450035 SupBlk 400LB1ea\n"
+ "AHC EB205L \n"
+ "DRI 10220-1 Bariatric500lb 1 ea\n"
+ "TILDA SONA MASOORI 20 LBS\n"
+ "OVAL ROASTER 9 - 12 LBS\n"
+ "ORGANIC TRIPACK FRUIT 1.2 KG\n"
+ "KGF5KT2404 PEPLUM T, PURPLE\n"
+ "AIR 1773LB-XL 15-20 KnXL 1ea\n"
+ "PLUM BAG 1KG US\n"
+ "NEXT XTRA 100G\n"
+ "SUDOCREM 60G\n"
+ "EGGPLANT GRILLED IN OIL (3KG)\n"
+ "CORONATION GRAPE 2L CA\n"
+ "MEAT DEAL $11.00 KG\n"
+ "LIVE LOBSTER- 2.00-3.00 LB-MSC\n"
+ "PC MAGIC GROW 20-20-20 3.55KG\n"
+ "KGF7W3409 KGVELCROWB,GREY\n"
+ "TZATZIKI 500G\n"
+ "2+1 LEAD MIX";
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