import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?i)(?<Lp>\\d{1,2}(?![\\s\\S]*?(Lp\\.|Ilość|Cena)))\\s*(?<NazwaProduktu>([\\S ]*?[\\n\\r]*){1,3})\\s+(?<Ilosc>([a-z]{3}|\\d{1,3}\\s*[a-z]{3}))\\s*(?<SWW>\\s*\\d{2}\\.\\d{2}\\.\\d{2}.\\d{1,2})\\s*(?<CenaNetto>(\\d{1,3},\\d{2}|\\d{1,3}\\.\\d{1,3},\\d{2}))\\s*(?<WartoscNetto>(\\d{1,3},\\d{2}|\\d{1,3}\\.\\d{1,3},\\d{2}))\\s*(?<StVAT>\\d{1,2})\\s*(?<KwotaVAT>(\\d{1,3},\\d{2}|\\d{1,3}\\.\\d{1,3},\\d{2}))\\s*(?<WartoscBrutto>(\\d{1,3},\\d{2}|\\d{1,3}\\.\\d{1,3},\\d{2}))\\s*(?<Waluta>[a-z]{3})";
final String string = "aktura VAT\n"
+ "\n"
+ "Oryginał\n"
+ "numer/data Data sprzedaży\n"
+ "904129299 / 05.06.2020 05.06.2020\n"
+ "Opracował Pani Tomasiuk /\n"
+ "+48 32 7375860/ monika.tomasiuk@hydac.com.pl\n"
+ "nr zamówienia Klienta/data T552744 / 25.03.2020 nr dokumentu dostawy/data sprzedaży 8113565910 / 05.06.2020 numer zamówienia/data 4276410 / 01.04.2020\n"
+ "numer Klienta / referencje Klienta 79004603\n"
+ "Wasz nr NIP\n"
+ "554-031-17-75\n"
+ "Nasz nr NIP\n"
+ "635-000-02-22\n"
+ "referencje płatności\n"
+ "0904129299\n"
+ "\n"
+ "NABYWCA Pojazdy Szynowe PESA Bydgoszcz S.A.\n"
+ "Zygmunta Augusta 11\n"
+ "PL-85-082 BYDGOSZCZ\n"
+ "warunki płatności:\n"
+ "Do dnia 03.09.2020 po tym terminie naliczać będziemy ustawowe odsetki.\n"
+ "\n"
+ "rodzaj wysyłki:\n"
+ "transport drogowy\n"
+ "\n"
+ "warunki dostawy:\n"
+ "CPT Magazyn Odbiorcy\n"
+ "\n"
+ "______________________________________________________________________________________________________\n"
+ "Lp. Nazwa towaru Ilość SWW/ Cena Wartość VAT Kwota Wartość\n"
+ " /PKWiU netto netto % VAT brutto\n"
+ "______________________________________________________________________________________________________\n"
+ "80 HRL 4 KP 28 PAFF CZARNE\n"
+ "Obejma numer art. Klienta 9461-3800-00-0309\n"
+ "PAR 25.11.10.0 3,75 150,00 23 34,50 184,50 PLN\n"
+ "______________________________________________________________________________________________________\n"
+ " Razem 150,00 34,50 184,50\n"
+ "______________________________________________________________________________________________________\n"
+ " Do zapłaty: 184,50 PLN\n"
+ "Słownie: STO OSIEMDZIESIĄT CZTERY 50/100 zł\n"
+ "Płatność prosimy dokonać na konto nr: 25 1750 1035 0000 0000 3761 9078\n"
+ "Do czasu uiszczenia całkowitej zapłaty, towar jest własnością sprzedającego.\n"
+ "Dokument wygenerowany elektronicznie, nie wymaga podpisu.\n"
+ "NABYWCA Pojazdy Szynowe PESA Bydgoszcz S.A.\n"
+ "Zygmunta Augusta 11\n"
+ "PL-85-082 BYDGOSZCZ\n"
+ "data/numer\n"
+ "05.06.2020 / 904129299\n"
+ "Strona\n"
+ "2 / 2\n"
+ "\n"
+ "Joanna Korzeniec\n"
+ ".............................................\n"
+ "Podpis i pieczęć osoby uprawnionej do wystawienia faktury VAT\n\n";
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