AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Portierung Perl nach Delphi - Problem mit Regular Expression
Thema durchsuchen
Ansicht
Themen-Optionen

Portierung Perl nach Delphi - Problem mit Regular Expression

Ein Thema von mischerr · begonnen am 5. Mär 2010 · letzter Beitrag vom 5. Mär 2010
Antwort Antwort
Benutzerbild von mischerr
mischerr

Registriert seit: 6. Feb 2004
Ort: Konz
243 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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Portierung Perl nach Delphi - Problem mit Regular Expres

  Alt 5. Mär 2010, 11:58
Ich denke mal es dürfte egal sein,
jedenfalls wird beim 2. Ausdruck die 1 mit zum Ergebnis gezählt.
Also dürfte es m/00(1\d{3})$/x) so dann wohl besser aussehn/zusammenpassen.

Zitat von mischerr:
Aber warum "s/00(1\d{3})$//x" und nicht "s/001(\d{3})$//x"!?

(1\d{3}) = die "1" steht mit in $1
und bei 1(\d{3}) steht die "1" nicht mit in $1 drin.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von mischerr
mischerr

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

Re: Portierung Perl nach Delphi - Problem mit Regular Expres

  Alt 5. Mär 2010, 14:55
Danke, ich denke ich hab's nun verstanden.

Musste jedoch Perl usw. installieren und mit der PerlIDE ein wenig debuggen weil es mir nicht klar war, das die Zuordnung nach $1 in der =~ Auswertung der RegEx per \d{3} von rechts nach links läuft...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz