const regex = /(?i)PRZED ODLICZ\.[\s\a]*ZAL\.\/ZAD\.[\s\a]*-[\s\a]*Zestawienie[\s\a]*podatku[\s\a]*VAT[\s\a]*Netto[\s\a]*Stawka[\s\a]*VAT[\s\a]*Brutto[\s\a]*(?<PrzedOdl>(?<PrzedOdlWartoscNetto>\d[\d ]*,\d{2})[\s\a]*(?<PrzedOdlStawkaVAT>\d+%)[\s\a]*(?<PrzedOdlKwotaVAT>\d[\d ]*,\d{2})[\s\a]*(?<PrzedOdlWartoscBrutto>\d[\d ]*,\d{2}))[\s\a]*ODLICZENIE[\s\a]*ZAL\.\/ZAD\.[\s\a]*-[\s\a]*Zestawienie podatku[\s\a]*VAT[\s\a]*Netto[\s\a]*Stawka[\s\a]*VAT[\s\a]*Brutto[\s\a]*(?<Odl>(?<OdlWartoscNetto>[-]?\d[\d ]*,\d{2})[\s\a]*(?<OdlStawkaVAT>\d+%)[\s\a]*(?<OdlKwotaVAT>[-]?\d[\d ]*,\d{2})[\s\a]*(?<OdlWartoscBrutto>[-]?\d[\d ]*,\d{2}))[\s\a]*Zestawienie[\s\a]*podatku[\s\a]*VAT[\s\a]*Netto[\s\a]*Stawka[\s\a]*VAT[\s\a]*Brutto[\s\a]*RAZEM[\s\a]*\((?<IloscProduktow>\d+)[\s\a]*Poz\.?\)[\s\a]*(?<WartoscNetto>\d[\d ]*,\d{2})([\s\a]*(?<StawkaVAT>\d+%)|)[\s\a]*(?<KwotaVAT>\d[\d ]*,\d{2})[\s\a]*(?<WartoscBrutto>\d[\d ]*,\d{2})[\s\a]*SUMA[\s\a]*OGÓŁEM[\s\a]*\k<WartoscBrutto>/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?i)PRZED ODLICZ\\.[\\s\\a]*ZAL\\.\\\/ZAD\\.[\\s\\a]*-[\\s\\a]*Zestawienie[\\s\\a]*podatku[\\s\\a]*VAT[\\s\\a]*Netto[\\s\\a]*Stawka[\\s\\a]*VAT[\\s\\a]*Brutto[\\s\\a]*(?<PrzedOdl>(?<PrzedOdlWartoscNetto>\\d[\\d ]*,\\d{2})[\\s\\a]*(?<PrzedOdlStawkaVAT>\\d+%)[\\s\\a]*(?<PrzedOdlKwotaVAT>\\d[\\d ]*,\\d{2})[\\s\\a]*(?<PrzedOdlWartoscBrutto>\\d[\\d ]*,\\d{2}))[\\s\\a]*ODLICZENIE[\\s\\a]*ZAL\\.\\\/ZAD\\.[\\s\\a]*-[\\s\\a]*Zestawienie podatku[\\s\\a]*VAT[\\s\\a]*Netto[\\s\\a]*Stawka[\\s\\a]*VAT[\\s\\a]*Brutto[\\s\\a]*(?<Odl>(?<OdlWartoscNetto>[-]?\\d[\\d ]*,\\d{2})[\\s\\a]*(?<OdlStawkaVAT>\\d+%)[\\s\\a]*(?<OdlKwotaVAT>[-]?\\d[\\d ]*,\\d{2})[\\s\\a]*(?<OdlWartoscBrutto>[-]?\\d[\\d ]*,\\d{2}))[\\s\\a]*Zestawienie[\\s\\a]*podatku[\\s\\a]*VAT[\\s\\a]*Netto[\\s\\a]*Stawka[\\s\\a]*VAT[\\s\\a]*Brutto[\\s\\a]*RAZEM[\\s\\a]*\\((?<IloscProduktow>\\d+)[\\s\\a]*Poz\\.?\\)[\\s\\a]*(?<WartoscNetto>\\d[\\d ]*,\\d{2})([\\s\\a]*(?<StawkaVAT>\\d+%)|)[\\s\\a]*(?<KwotaVAT>\\d[\\d ]*,\\d{2})[\\s\\a]*(?<WartoscBrutto>\\d[\\d ]*,\\d{2})[\\s\\a]*SUMA[\\s\\a]*OGÓŁEM[\\s\\a]*\\k<WartoscBrutto>', 'gm')
const str = `ODATNIK:
Rogum Kable Sp. z o.o. 83-000 Pruszcz Gdański
ORYGINAŁ
Pruszcz Gdański, 2020-04-28
Grunwaldzka 66
Bank: Bank Polska Kasa Opieki SA
NIP : 957-00-17-373
Konto: 57124012681111001033938599
/
FAKTURA VAT 207/04/2020
Data wystawienia : 2020-04-28 Data sprzedaży : 2020-04-28
Na podstawie : T530992 , z dnia: 2019-12-28
NABYWCA : Pojazdy Szynowe PESA Bydgoszcz S.A.
(811) : Zygmunta Augusta 11 Bydgoszcz, 85-082
NIP : 554-031-17-75
Operator prowadzący : Łukasz Czajkowski, Tel.: 506234233, E-mail: l.czajkowski@rogum.com.pl
/
Poprzednie zaliczki/zadatki: Fzal 54/04/2020 2020-04-06 (246 000,00)
Lp
Nazwa pełna
Ilość
Jm
Cena
Wartość
Stawka
Wartość
Wartość
Indeks (K)
NETTO PL
NETTO PLN
VAT
VAT PLN
BRUTTO PLN
1
LiHCH 0,6/1kV 3x1,5
200
m
2,70
540,00
23%
124,20
664,20
9124-1100-000-075
2
LiHCH 0,6/1kV 3x1,5
86
m
2,70
232,20
23%
53,41
285,61
9124-1100-000-075
PRZED ODLICZ. ZAL./ZAD. - Zestawienie podatku VAT
Netto
Stawka
VAT
Brutto
772,20
23%
177,61
949,81
ODLICZENIE ZAL./ZAD. - Zestawienie podatku VAT
Netto
Stawka
VAT
Brutto
-772,20
23%
-177,61
-949,81
Zestawienie podatku VAT
Netto
Stawka
VAT
Brutto
RAZEM (2 Poz.)
0,00
0,00
0,00
SUMA OGÓŁEM
0,00
Słownie : zero złotych, zero groszy
DO ZAPŁATY : 0,00 zł Rozliczono
Sara Żołnowska
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
podpis osoby upoważnionej pieczęć i podpis wystawiającego do odbioru Faktury VAT
Druk Streamsoft PRESTIŻ lic. 5529 v. 7.0.347.168 Str. 1 z 1
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions