Probleme mit Kontoaktualisierung

mh at mike.franken.de mh at mike.franken.de
Tue Dec 26 12:05:43 GMT 2023


On Dienstag, 26. Dezember 2023 12:57:27 CET mh--- via KMyMoney wrote:
> On Montag, 25. Dezember 2023 22:19:21 CET Thomas Baumgart via KMyMoney 
wrote:
> > On Sonntag, 24. Dezember 2023 15:34:50 CET mh--- via KMyMoney wrote:
> [...]
> 
> > > <TRANSACTION dateposted="2023-12-22" payee="" action="none"
> > > amount="-211/25" memo="MICHAEL HIRMKE AMZN Mktp DE*3A7OC0625     LUX
> > > 800-279-6620 Karten-Nr. XXXXXXXXXXXXXXXXBeleg vom 20.12.2023 für
> > > Abrechnung Dezember" number="" bankid="A000259-2023-12-22-1e12880-1"
> > > reconcile="0"/>
> > > 
> > > oder
> > > 
> > >   <TRANSACTION dateposted="2023-12-22" payee="" action="none"
> > >   amount="-211/25">
> > > 
> > > memo="MICHAEL HIRMKE&#xa;AMZN Mktp DE*3A7OC0625     LUX
> > > 800-279-6620&#xa;Karten-Nr. XXXXXXXXXXXXXXXXBeleg vom 20.12.2023&#xa;für
> > > Abrechnung Dezember" number="" bankid="A000259-2023-12-22-1e12880-1"
> > > reconcile="0"/>
> > > 
> > > wenn ich nicht die Zeilenumbrüche entfernen lasse.
> > > Es steht also alles im MEMO-Feld.
> > > 
> > > Sowas wie
> > > 
> > > ^MICHAEL HIRMKE&#xa;(.+?)&#xa;
> > > 
> > > sollte doch dann den Empfänger in $1 fangen.
> > > Klappt aber leider nicht 8-(
> 
> [...]
> 
> > Also könnte etwa
> > 
> > ^[^\x{0A}]*\x{0A}(.{27})
> > 
> > die bessere Wahl sein. Für das Memo kannst Du dann folgenden Ausdruck
> > probieren:
> > 
> > ^[^\x{0A}]*\x{0A}.{27}(.*)
> 
> leider funktioniert weder
> 
> '^[^\x{0A}]*\x{0A}(.{27})'
> 
> noch
> 
> '^.*?&#xa;(.{27})'
> 
> in kmymoney.
> 
> In Perl hingegen klappt:
> 
> $rp = qq(^[^\x0A]*\x0A(.{27}));
> $rm = qq(^[^\x0A]*\x0A.{27}(.*));
> $t = qq(MICHAEL HIRMKE\x0AAMZN Mktp DE*3A7OC0625     LUX
> 800-279-6620\x0AKarten-Nr. XXXXXXXXXXXXXXXXBeleg vom 20.12.2023\x0Afür
> Abrechnung Dezember);
> 
> if( $t =~ /${rp}/i ) {
>   print ">", $1, "<\n";
> } else {
>   print "no match for payee!\n";
> }
> if( $t =~ /${rm}/i ) {
>   print ">", $1, "<\n";
> } else {
>   print "no match for memo!\n";
> }
> 
> ergibt:
> >AMZN Mktp DE*3A7OC0625     <
> >LUX 800-279-6620&#xa;Karten-Nr. XXXXXXXXXXXXXXXXBeleg vom
> >20.12.2023&#xa;für
> Abrechnung Dezember<
> 
> Und auch mit
> 
> $rp = '^.*?&#xa;(.{27})';
> $rm = '^.*?&#xa;.{27}(.*)';
> $t = 'MICHAEL HIRMKE&#xa;AMZN Mktp DE*3A7OC0625     LUX
> 800-279-6620&#xa;Karten-Nr. XXXXXXXXXXXXXXXXBeleg vom 20.12.2023&#xa;für
> Abrechnung Dezember';
> 
> klappts.

besser:

$rp = qq(^[^\x0A]*\x0A(.{27}));
$rm = qq(^[^\x0A]*\x0A.{27}(.*));
$t = qq(MICHAEL HIRMKE\x0AAMZN Mktp DE*3A7OC0625     LUX 
800-279-6620\x0AKarten-Nr. XXXXXXXXXXXXXXXXBeleg vom 20.12.2023\x0Afür 
Abrechnung Dezember);

if( $t =~ /${rp}/s ) {
  print ">", $1, "<\n";
} else {
  print "no match for payee!\n";
}
if( $t =~ /${rm}/s ) {
  print ">", $1, "<\n";
} else {
  print "no match for memo!\n";
}

> 
> Ciao.
> Michael.






More information about the KMyMoney mailing list