import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "[\\w\\W]+?Code[\\w\\W]+?(?<po_number>\\d{8})\\s\\|[\\w\\W]+?\\s\\|[\\w\\W]+?\\s\\|[\\w\\W]+?\\s\\|[\\w\\W]+?\\s\\|[\\w\\W]+?\\s\\|[\\w\\W]+?\\s\\|[\\w\\W]+?\\s\\|[\\w\\W]+?\\s|\\s\\|[\\w\\W]+?\\s\\|[\\w\\W]+?\\s\\|\\s(?<reason>[\\w\\W]+?)\\|";
final String string = "The Acme Corp has requested you cancel the following order(s) as soon as possible.\n"
+ "If you're unable to cancel the order(s), or have questions about the reason for canceling, please contact Acme Corp directly.\n"
+ "For the best support, please do not reply to this email. \n\n"
+ "PO# | Order Received On | Ship-to Zip Code\n"
+ "12345678 | 2024-03-21 18:26:54 | \n\n"
+ " Line # | Merchant SKU | Vendor SKU | Cancel Qty | Cancel Reason | Packing Slip Bundle\n"
+ " 1 | 1XX718YY40 | 654321 | 1 | Cancelled at Merchant's Request | 19205839\n\n"
+ "Depending on the business rules, you may need to include some of these details on the fulfillment confirmation you use to cancel the order.";
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