Hallo.
Ich bin kein Perl-User, muss aber eine Perl-Funktion in Delphi abbilden die eine RegEx nutzt mit der ich ein Verständnissproblem habe.
Hier der Auszug der Perl Funktion:
Code:
my $num = $_[0]; // Übergebener Parameter: Ein Integer 0..max(integer)
my @parts;
my $count = 0;
my $part;
if ($num =~ m/001(\d{3})$/x) {
$num =~ s/00(1\d{3})$//x;
$part = $1;
unshift @parts, [ $part, $count ];
$count += 2;
}
Es geht hier um die Ausdrücke "m/001(\d{3})$/x" und "s/00(1\d{3})$//x".
Erster scheint zu prüfen, ob im übergebenem Integer als Text die Sequenz "001xxx" vorkommt und wenn ja, dann hält $1 die gefunden Sequenz!?
Zweiter scheint die gefundene Sequenz aus $num zu löschen. Aber warum "s/00(1\d{3})$//x" und nicht "s/001(\d{3})$//x"!?
Ist zufällig jemand fit in dem Thema?