use strict;
my $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
';
my $regex = qr/(?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>/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
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 Perl, please visit: http://perldoc.perl.org/perlre.html