import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<=[^0-9][^0-9]\\s)(?P<val>[1-9]|[1-2][0-9]|3[0-3])(?=\\s[^a-z\\s]+\\s[^a-z\\s]+\\s[^a-z\\s]+$)";
final String string = "Increase)/Decrease in inventories -6,999,009 3,784,581\n"
+ "Increase)/Decrease in receivables -7,393,450 3,842,984\n"
+ "Increase/(Decrease) in payables 5,821,857 -18,006,883\n"
+ "Grant received 0 625,255\n"
+ "Interest paid -565,584 -1,495,877\n"
+ "Tax paid -22,168 -21,694\n"
+ "The annexed NOTEs form an integral part of the financial statements.\n"
+ "36\n"
+ "Annual Report 2012\n"
+ "Pentamaster Corporation Berhad (5723070 ) www.pentamaster.com\n"
+ "CONSOLIDATED STATEMENT OF CASH FLOWS\n"
+ "FOR THE YEAR ENDED 31 DECEMBER 2012 (CONT'D)\n"
+ "2012 2011\n"
+ "RM RM\n"
+ "CFI\n"
+ "Dividend income 80,863 81,078\n"
+ "Interest received 67,568 316,523\n"
+ "Proceeds from disposal of property, plant and equipment/non current assets held for sale 27 28,000 48,298,000\n"
+ "Purchase of property, plant and equipment 27 -64,624 0\n"
+ "CFF\n"
+ "Short term borrowings obtained/(repaid) 6,367,671 -4,757,230\n"
+ "Net term loans repaid -3,382,414 -40,376,659\n"
+ "Net Cash Flow -838,456 -168,122\n"
+ "Cash and cash equivalents brought forward 5,939,258 6,147,628\n"
+ "FOREIGN CURRENCY EXCHANGE\n"
+ "DIFFERENCES ON OPENING BALANCE 35 -40,248\n"
+ "Cash and cash equivalents carried forward 5,100,837 5,939,258\n"
+ "RM RM\n"
+ "CFO\n"
+ "Loss)/Profit before taxation -2,083,184 2,145,073\n"
+ "Adjustments for :0\n"
+ "Amortisation of intangible assets 2,689,572 4,087,413\n"
+ "Bad debts written off 7,594 0\n"
+ "Deferred income released -1,854,722 -3,786,856\n"
+ "Depreciation 2,855,169 2,941,851";
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