Einzelnen Beitrag anzeigen

Benutzerbild von mischerr
mischerr

Registriert seit: 6. Feb 2004
Ort: Konz
238 Beiträge
 
Delphi 12 Athens
 
#1

Portierung Perl nach Delphi - Problem mit Regular Expression

  Alt 5. Mär 2010, 11:51
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?
  Mit Zitat antworten Zitat