use strict;
my $str = '@Actor (=CustNo,SupNo,Nm,Ad1,Ad2,Ad3,PNo,PArea,Phone,Fax,MailAd,BsNo,BGiro,Ctry,Lang,Cur,CPmtTrm,SPmtTrm)
"10458";"0";"Vesterlandet GÂrd / D. Hansen";"Vesterlandet 226";"";"";"8407";"Sortland";"";"";"vesterlandetgaard@gmail.com";"926967878";"";"47";"47";"";"15";"15"
@IMPORT_METHOD(3)
@WaBnd (ValDt, SrcTp, Descr)
"20240326" "12" "Quick3 Import"
@WaVo (VoNo,VoDt,ValDt,VoTp,Txt,DbAcNo,DbTrnCl,DbTxCd,CrAcNo,CrTrnCl,CrTxCd,Am,InvoNo,DueDt,VatAm,R1,R2,R7,CID,Txt2,AGRef)
"100489";"20240326";"20240326";"11";"Utg.faktura";"10458";"0";"0";"0";"0";"0";"33818.00";"100489";"20240405";"";"";"";"";"001045801004890";"";"";;
"100489";"20240326";"20240326";"11";"Utg.faktura";"0";"0";"0";"7740";"0";"0";"0.50";"";"";"";"";"";"";"";"";"";;
"100489";"20240326";"20240326";"11";"Utg.faktura";"0";"0";"0";"3000";"0";"3";"30937.50";"";"";"";"1";"";"";"";"";"";;
"100489";"20240326";"20240326";"11";"Utg.faktura";"0";"0";"0";"3001";"0";"3";"2880.00";"";"";"";"1";"";"";"";"";"";;';
my $regex = qr/"(?<VoNo>[^"]*)";"(?<VoDt>[^"]*)";"(?<ValDt>[^"]*)";"(?<VoTp>[^"]*)";"(?<Txt>[^"]*)";"(?<DbAcNo>[^"]*)";"(?<DbTrnCl>[^"]*)";"(?<DbTxCd>[^"]*)";"(?<CrAcNo>[^"]*)";"(?<CrTrnCl>[^"]*)";"(?<CrTxCd>[^"]*)";"(?<Am>[^"]*)";"(?<InvoNo>[^"]*)";"(?<DueDt>[^"]*)";"(?<VatAm>[^"]*)";"(?<R1>[^"]*)";"(?<R2>[^"]*)";"(?<R7>[^"]*)";"(?<CID>[^"]*)";"(?<Txt2>[^"]*)";"(?<AGRef>[^"]*)";;/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