RegularExpression (rtl)

De Wiki1000
(Différences entre les versions)
m
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 liste de chaîne.
+
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 excluant les sous-expressions.
  
 
{|class="wikitable"
 
{|class="wikitable"
Ligne 22 : Ligne 22 :
 
<source lang='delphi'>
 
<source lang='delphi'>
 
//Function RegExpDonneeBaliseFormat(aStr:string; aExprReg:string):string;
 
//Function RegExpDonneeBaliseFormat(aStr:string; aExprReg:string):string;
var vStrList:TStringList;
+
var vStrList : TStringList;
 +
    Count    : Integer;
 
begin
 
begin
Result := '';
 
 
  vStrList := TStringList.Create;
 
  vStrList := TStringList.Create;
  RegularExpression( aStr ,aExprReg ,vStrList);
+
   
 +
vCount := RegularExpression(aStr, aExprReg, vStrList);
  
  if (vStrList.count=0) then
+
  if (vCount=0) then
   exit;
+
   Result := ''
 
+
  else if (vStrList.count=1) then
  if (vStrList.count=1) then
+
 
   result := vStrList.Strings[0]
 
   result := vStrList.Strings[0]
 
  else
 
  else
   raise ERule.Create(Format(_TP('Exception RegExpDonneeBaliseFormat , donnée lue : "%s", expression : "%s", retourne plusieurs réponses'),[varDonneeLue,aExprReg]));
+
   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 20 septembre 2018 à 17:21

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 excluant les sous-expressions.

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;
    Count    : Integer;
begin
 vStrList := TStringList.Create;
 
 vCount := RegularExpression(aStr, aExprReg, vStrList);
 
 if (vCount=0) then
   Result := ''
 else 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