Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

Re: TRegExpr benannte Gruppen abfragen

  Alt 12. Jul 2007, 16:09
OK, Problem gelöst. Vermutlich liegt es TRegExpr, beim anwenden von TPerlRegEx
funkt es einwandfrei, allerdingt leicht abgeändert. TPerlRegEx vertragt z.b.
keine gleichen Bezeichner für die Gruppen, und benötigt ein "P" vor den Gruppennamen.


Das abgeändert, funkt es einwandfrei. Das Tool RegexBuddy rentiert sich zu 100%

Delphi-Quellcode:
{--------------------------------------------}
{}procedure SplitLandPLZOrt(LandPLZOrt:String;
                           var Land:String;
                           var PLZ:String;
                           var Ort:String);
{--------------------------------------------}
 const
   template = '^(((?P<land>[A-Z]{1,3})[ -])?(?P<plz>\d+)\s+)?(?P<ort>[a-zäöü]+(\s+\d+)?)$|^(?P<plz2>\d+)$';
 var
  Regex: TPerlRegEx;
begin
  Regex := TPerlRegEx.Create(nil);
  try
    Regex := TPerlRegEx.Create(nil);
    Regex.RegEx := template;
    Regex.Subject := LandPLZOrt;
    Regex.Options := [preCaseless];
    if Regex.Match then
    begin
        Land := Regex.SubExpressions[3];
        PLZ := Regex.SubExpressions[4];
        if (Regex.SubExpressions[7]<>'')and
           (Regex.SubExpressions[5]='')
        then Ort := Regex.SubExpressions[7]
        else Ort := Regex.SubExpressions[5];
    end;{if}
  finally
    Regex.Free;
  end;{try}


end;{SplitLandPLZOrt}

Gruß Kostas
  Mit Zitat antworten Zitat