« RegularExpression (rtl) » : différence entre les versions

De Wiki1000
Aucun résumé des modifications
mAucun résumé des modifications
 
(3 versions intermédiaires par le même utilisateur non affichées)
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;
  vCount := RegularExpression(aStr, aExprReg, vStrList);
  RegularExpression( aStr ,aExprReg ,vStrList);


  if (vStrList.count=0) then
  if (vCount=0) then
   exit;
   Result := ''
 
  else if (vCount=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 %d réponses'),[varDonneeLue, aExprReg, vCount]));
end;
end;
</source>
</source>

Dernière version du 20 septembre 2018 à 16:25

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 (vCount=1) then
   result := vStrList.Strings[0]
 else
   raise ERule.Create(Format(_TP('Exception RegExpDonneeBaliseFormat , donnée lue : "%s", expression : "%s", retourne %d réponses'),[varDonneeLue, aExprReg, vCount]));
end;

Voir aussi:

Développement DSMDéveloppement DSM