RegularExpression (rtl)

De Wiki1000
(Différences entre les versions)
Ligne 1 : Ligne 1 :
 
<source lang='delphi'>Function RegularExpression(const aSource:string; const aExpression:string; aResult:TStrings):integer;</source>
 
<source lang='delphi'>Function RegularExpression(const aSource:string; const aExpression:string; aResult:TStrings):integer;</source>
  
Cette fonction parse une chaine suivant une expression régulière et retourne les différents tokens identifiés dans une stringlist.
+
Cette fonction parse une chaine suivant une expression régulière et retourne les différents tokens identifiés dans une liste de chaîne.
  
 
{|class="wikitable"
 
{|class="wikitable"
Ligne 15 : Ligne 15 :
 
|-
 
|-
 
|aResult
 
|aResult
|String list recevant les tokens.
+
|Liste de chaîne recevant les tokens.
 
|}
 
|}
  
Ligne 21 : Ligne 21 :
  
 
<source lang='delphi'>
 
<source lang='delphi'>
 +
//Function RegExpDonneeBaliseFormat(aStr:string; aExprReg:string):string;
 +
var vStrList:TStringList;
 
begin
 
begin
 +
Result := '';
 +
vStrList := TStringList.Create;
 +
RegularExpression( aStr ,aExprReg ,vStrList);
 +
 +
if (vStrList.count=0) then
 +
  exit;
 +
 +
if (vStrList.count=1) then
 +
  result := vStrList.Strings[0]
 +
else
 +
  raise ERule.Create(Format(_TP('Exception RegExpDonneeBaliseFormat , donnée lue : "%s", expression : "%s", retourne plusieurs réponses'),[varDonneeLue,aExprReg]));
 
end;
 
end;
 
</source>
 
</source>

Version du 11 août 2009 à 15:01

Function RegularExpression(const aSource:string; const aExpression:string; aResult:TStrings):integer;

Cette fonction parse une chaine suivant une expression régulière et retourne les différents tokens identifiés dans une liste de chaîne.

Result Nombre de token identifiés.
aSource Chaine de caractère à parser.
aExpression Expression régulière.
aResult Liste de chaîne recevant les tokens.

Exemple

//Function RegExpDonneeBaliseFormat(aStr:string; aExprReg:string):string;
var vStrList:TStringList;
begin
 Result := '';
 vStrList := TStringList.Create;
 RegularExpression( aStr ,aExprReg ,vStrList);
 
 if (vStrList.count=0) then
   exit;
 
 if (vStrList.count=1) then
   result := vStrList.Strings[0]
 else
   raise ERule.Create(Format(_TP('Exception RegExpDonneeBaliseFormat , donnée lue : "%s", expression : "%s", retourne plusieurs réponses'),[varDonneeLue,aExprReg]));
end;

Voir aussi:

Développement DSMDéveloppement DSM

Outils personnels