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 | + | 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 | ||
− | | | + | |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: