RegExp Studio
TRegExpr v.0.942 - Delphi Expressions Régulières

Bulgarian
English
French
German
Russian
Spanish
About TRegExpr A propos Installation Installation Regular Expressions Syntax Syntaxe TRegExpr Interface Interface FAQ FAQ TRegExpr usage demos Demos Author Auteur  
Interface de TRegExpr
Méthodes et propriétés publique de TRegExpr:


property Expression : string
Fonction
Contient l'expression Régulière. Pour L'optimisation, TRegExpr va automatiquement le compiler en 'P-code' (vous pouvez le voir avec l'aide de la méthode Dump) et stocké dans sa structure interne. La vrai [re]compilation survient quand c'est réellement le cas - en appellant Exec[Next], Substitute, Dump, etc et seulement si l'expression ou un autre P-code a affecté les propriétés qui ont été changées après la dernière [re]compilation.  
Erreur
Si une erreur survient durant la [re]compilation, une méthode d'erreur est appelée (par défaut une erreur d'exception est levée - voir plus bas).  


property ModifierStr
: string
Fonction
Ajuste/récupère les valeurs par défaut des modifications d'e.r.. Le format de chaîne est similaire à (?ismx-ismx). Par exemple si ModifierStr := 'i-x' va mettre à On le modifier /i, à Off /x et laisser les autres inchangés.  
Valeurs Possibles
-i-s-m-x ou ismx ou,...  
Valeurs par Défaut
-i-s-m-x  
Erreur
Si vous essayez des modifications non supportées, une erreur sera appelée (par défaut les erreurs lève une exception dans ERegExpr).  


property ModifierI
: boolean
Fonction
Modifier /i - ("casse des caractères ignorée"), initialisé avec la valeur RegExprModifierI.  
Valeurs Possibles
True   =      Ignore les majuscules/minuscules.  
False   =      Fait une distinction entre les majuscules/minuscules.  
Valeur par Défaut
False  
Erreur
Aucune  


property ModifierR
: boolean
Fonction
Modifier /r - ("extension de syntaxe Russe"), initialisé avec la valeur RegExprModifierR.  
Valeurs Possibles
True   =      Active l'extension de syntaxe Russe.  
False   =      Désactive l'extension de syntaxe Russe.  
Valeur par Défaut
True  
Erreur
Aucune  


property ModifierS
: boolean
Fonction
Modifier /s - '.' veut dire n'importe quel caractère (normalement il ne comprend pas les LinesSeparators et LinePairedSeparator), initialisé avec la valeur RegExprModifierS.  
Valeurs Possible
True   =      Séparateur de ligne inclus pour le métacaractère ".".  
False   =      Séparateur de ligne pas inclus pour le métacaractère ".".  
Valeur par Défaut
True  
Erreur
Aucune  


property ModifierG
: boolean;
Fonction
Modifier /g. En le mettant à Off tous les opérateurs fonctionne en mode non-vorace, donc si ModifierG = Faux, alors '*' est comme '*?', tous les '+' comme '+?' et ainsi de suite, initialisé avec la valeur RegExprModifierG.  
Valeurs Possible
True   =      Mode vorace.  
False   =      Mode non-vorace.  
Valeur par Défaut
True  
Erreur
Aucune  

property ModifierM
: boolean;
Fonction
Modifier /m Traite les chaînes comme des lignes multiples . Ceci fait, changer `^' et `$' de correspondre au début ou à la fin de la chaîne, à partir d'une nouvelle ligne ou à la fin d'une ligne, initialisé avec la valeur RegExprModifierM.  
Valeurs Possible
Vrai   =      Considère une nouvelle ligne ou la fin d'une ligne comme le début d'une chaîne.  
False   =      Doit absolument être au début ou à la fin de la chaîne.  
Valeur par Défaut
False  
Erreur
Aucune  


property ModifierX
: boolean;
Fonction
Modifier /x - ("syntaxe étendue"), initialisé avec la valeurRegExprModifierX.  
Valeurs Possible
Vrai   =      Syntaxe étendue activé (des commentaires peuvent être insérés dans l'e.r.).  
False   =      Syntaxe étendue désactivé (aucun commentaire possible).  
Valeur par Défaut
False  
Erreur
Aucune  


function Exec
(const AInputString : string) : boolean;
Fonction
Compare une recherche à la chaîne AInputString.  
Note
La fonction Exec stocke AInputString dans la propriété InputString.  


function ExecNext
: boolean;
Fonction
Trouve l'occurrence suivante de Exec(AString);  
Note
fonctionne comme  
Exec (AString);  
if MatchLen [0] = 0 then ExecPos(MatchPos [0] + 1)  
else ExecPos (MatchPos [0] + MatchLen [0]);  
mais est plus simple !  


function ExecPos
(AOffset: integer = 1) : boolean;
Fonction
Trouve une occurrence de recherche pour de départ de InputString à partir de la position Aoffset (AOffset=1 - premier caractère de InputString).  


property InputString
: string;
Fonction
Retourne le chaîne d'entrée courante (à partir du dernier appel de Exec ou de la dernière désignation de cette propriété).  
Note
Une modification à cette propriété efface les propriétés Match* !  


function Substitute
(const ATemplate : string) : string;
Fonction
Retourne ATemplate avec '$&' ou '$0' remplacé par l'occurrence complète de l'e.r. et '$n' remplacé par l'occurrence de la sous expression #n.  
Valeur de Retour
Contient la chaîne avec les modification apportées.  
Note
Depuis la v.0.929 '$' utiliser plutôt '\' (pour les futures extensions et pour plus de compatibilité avec Perl) pour accepter plus d'un caractère numérique.  
 
Si vous voulez placer le gabarit dans le modèle '$' ou '\', utiliser le préfixe '\'.  
Exemple: '1\$ is $2\\rub\\' -> '1$ est <Match[2]>\rub\'  
 
Si vous voulez placer un caractère numérique après '$n' vous devez délimiter n avec des accolades '{}'.  
Exemple: 'a$12bc' -> 'a<Match[12]>bc', 'a${1}2bc' -> 'a<Match[1]>2bc'.  


procedure Split
(AInputStr : string; APieces : TStrings);
Fonction
Divise AInputStr en pièces dans APieces par les occurrences de l'e.r.  
Note
Appelé au niveau interne Exec[Next].  


function Replace
(AInputStr : string; const AReplaceStr : string) : string;
Fonction
Retourne AInputStr avec les occurrences de l'e.r remplacé par AReplaceStr  
Note
Appelé au niveau interne Exec[Next].  


property SubExprMatchCount
: integer; //
LectureSeulement

Fonction
Le nombre de sous expressions qui a été trouvé dans la dernière exécution de Exec*.  
Valeur de Retour
S'il n'y a aucune sous expression mais que l'expression complète à été trouvé (Exec* à retourné vrai), alors SubExprMatchCount=0, si aucune sous expression et aucune e.r. complète a été trouvé (Exec* retourne Faux) alors SubExprMatchCount=-1.  
 
Noter que quelques sous expressions peuvent ne pas être trouvées et pour de telles sous expressions, MathPos=MatchLen=-1 and Match=''.  
 
Par exemple: L'Expression := '(1)?2(3)?';  
Exec ('123'): SubExprMatchCount=2, Match[0]='123', [1]='1', [2]='3'  
Exec ('12'): SubExprMatchCount=1, Match[0]='12', [1]='1'  
Exec ('23'): SubExprMatchCount=2, Match[0]='23', [1]='', [2]='3'  
Exec ('2'): SubExprMatchCount=0, Match[0]='2'  
Exec ('7') - return False: SubExprMatchCount=-1  


property MatchPos
[Idx : integer] : integer; //
LectureSeulement

Fonction
La position d'entrée de la sous expression #Idx en test à la dernière exécution de Exec*.  
Paramètre
La première sous expression a une valeur de Idx=1, dernière - MatchCount, l'e.r. a une valeur de Idx=0.  
Valeur de Retour
Retourne -1 si dans l'e.r. il n'y a pas de sous expression trouvée dans la chaîne.  


property MatchLen
[Idx : integer] : integer; //
Lecture Seulement

Fonction
La longueur d'entrée de la sous expression #Idx e.r. en test à la dernière exécution de Exec*. La première sous expression a la valeur Idx=1, dernière - MatchCount, l'e.r. entière a une valeur de Idx=0.  
Valeur de Retour
Retourne -1 si dans l'e.r. il n'y a pas de sous expression ou que cette expression n'as pas été trouvé dans la chaîne.  


property Match
[Idx : integer] : string; //
Lecture Seulement

Fonction
== copy (InputString, MatchPos [Idx], MatchLen [Idx])  
Valeur de Retour
Retourne '' si dans l'e.r. il n'y a pas de sous expression ou que la sous expression n'as pas été trouvé dans la chaîne.  


function LastError
: integer;
Fonction
Retourne l'ID de la dernière erreur, 0 s'il y a aucune erreur (inutilisable si l'erreur a générée une erreur d'exception) et efface la valeur interne à 0 (pas d'erreur).  


function ErrorMsg
(AErrorID : integer) : string; virtual;
Fonction
Retourne un message d'erreur pour l'erreur avec ID = AErrorID.  


property CompilerErrorPos
: integer; // Lecture Seulement
Fonction
Retourne la position dans l'e.r. ou le compilateur a stoppé. Très pratique pour diagnostiquer les erreurs.  


property SpaceChars
: RegExprString
Fonction
Contient les caractères traités comme \s (initialement remplit avec les valeurs de la variable globale RegExprSpaceChars).  


property WordChars
: RegExprString;
Fonction
Contient les caractères traités comme \w (initialement remplit avec les valeurs de la variable globale RegExprWordChars).  


property LineSeparators
: RegExprString
Fonction
Les séparateurs de ligne (comme Unix \n), initialement remplit avec les valeurs de la variable globale RegExprLineSeparators). Voir aussi a propos des séparateurs de ligne.  


property LinePairedSeparator
: RegExprString
Fonction
Paire de séparateur de ligne (pour le Dos et Windows \r\n). Doit contenir exactement deux caractères ou pas de caractères du tout, initialement remplit avec les valeurs de la variable globale RegExprLinePairedSeparato). Voir aussi a propos des séparateurs de ligne.  
Note
Par exemple, si vous avez besoin du style Unix, assigner à LineSeparators := #$a (caractère de nouvelle ligne) et LinePairedSeparator := '' (chaîne vide), si par contre vous voulez accepter les séparateurs "\x0D\x0A" mais pas "\x0D" ou "\x0A" seul, alors assigner LineSeparators := '' (chaîne vide) et LinePairedSeparator := #$d#$a.  
 
Par défaut le mode 'mixe' est utilisé (définit par défaut dans les constantes globales RegExprLine[Paired]Separator[s]): LineSeparators := #$d#$a; LinePairedSeparator := #$d#$a. Le comportement de ce mode est décris dans la section syntaxe.  


class function InvertCaseFunction
(const Ch : REChar) : REChar;
Fonction
Convertit Ch en majuscule si c'est minuscule et vice-versa (en utilisant les ajustement du système local).  


property InvertCase
: TRegExprInvertCaseFunction;
Fonction
Ajuster cette propriété si vous voulez éviter la fonctionnalité de l'ignorance des minuscules/majuscules.  
Note
Crée une interdiction à la fonction RegExprInvertCaseFunction (InvertCaseFunction par défaut).  


procedure Compile
;
Fonction
[Re]compile l'e.r. Très pratique pour les applications qui utilise les éditeurs graphique pour vérifier la validité des propriétés.  


function Dump
: string;
Fonction
Crée pour le visionnement une e.r. compilée en une forme plus compréhensive.  



Constantes Globales


Valeurs par défaut des Modifiers:
RegExprModifierI
: boolean = False;
      
//
TRegExpr.ModifierI

RegExprModifierR
: boolean = True;
      
//
TRegExpr.ModifierR

RegExprModifierS
: boolean = True;
      
//
TRegExpr.ModifierS

RegExprModifierG
: boolean = True;
      
//
TRegExpr.ModifierG

RegExprModifierM
: boolean = False;      //
TRegExpr.ModifierM

RegExprModifierX
: boolean = False;      //
TRegExpr.ModifierX



RegExprSpaceChars
: RegExprString = ' '#$9#$A#$D#$C;
// Valeur par défaut pour la propriété SpaceChars


RegExprWordChars
: RegExprString =
'0123456789'
+ 'abcdefghijklmnopqrstuvwxyz'
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_';
// Valeur par défaut pour la propriété WordChars


RegExprLineSeparators
: RegExprString =
#$d#$a{$IFDEF UniCode}#$b#$c#$2028#$2029#$85{$ENDIF};
//
Valeur par défaut pour la propriété
LineSeparators
RegExprLinePairedSeparator
: RegExprString =
#$d#$a;
//
Valeur par défaut pour la propriété
LinePairedSeparator


RegExpr
Invert
CaseFunction
: TRegExprInvertCaseFunction = TRegExpr.InvertCaseFunction;
//
Valeur par défaut pour la propriété
InvertCase



Fonctions globales pratiques



function ExecRegExpr
(const ARegExpr, AInputStr : string) : boolean;
Fonction
Retourne vrai si la chaîne AInputString concorde à l'expression ARegExpr.  
Note
!Va lever une exception s'il y a une erreur de syntaxe dans ARegExpr.  


procedure SplitRegExpr
(const ARegExpr, AInputStr : string; APieces : TStrings);
Fonction
Sépare AInputStr en pièces dans APieces par les occurrences de l'e.r. ARegExpr.  


function ReplaceRegExpr
(const ARegExpr, AInputStr, AReplaceStr : string) : string;
Fonction
Retourne AInputStr avec l'occurrence de l'e.r. remplacé par AReplaceStr.  


function Quot
e
RegExprMetaChars
(const AStr : string) : string;
Fonction
Remplace tous les métacaractères avec une représentation simple, par exemple 'abc$cd.(' est converti en 'abc\$cd\.\('.  
Note
Cette fonction est très pratique pour l'autogénération d'e.r. à partir d'entrée utilisateur.  


function RegExprSubExpressions
(const ARegExpr : string; ASubExprs : TStrings; AExtendedSyntax : boolean = False) : integer;
Fonction
Fabrique une liste de sous expression trouvé dans l'e.r. ARegExpr.  
Note
Dans ASubExps chaque item représente une sous expression, à partir de la première jusqu'à la dernière, dans le format:  
Chaîne   -      texte de sous expression (sans les '()').  
bas mot de l'objet   -      position de départ dans ARegExpr, incluant '(' s'il existe ! (la première position est 1).  
haut mot de l'objet   -      La longueur, incluant le départ '(' et la fin ')' s'il existent!  
AExtendedSyntax   -      Doit être Vrai si le modifier /x est à On durant l'utilisation de l'e.r.  
 
Utile pour les éditeurs avec interface graphique (Vous pouvez trouver un exemple d'utilisation dans le projet TestRExp.dpr).  

Code Résultat   Sens  
 
 
0          Succès. Pas de parenthèse non balancées trouvé.  
-1          Il n'a pas assez de parenthèse de fermeture.  
-(n+1)          À la position n était trouvé '[' sans fermeture ']'.  
n          À la position n était trouvé ')' sans ouverture '('.  

Si le résultat <> 0, alors ASubExprs peut contenir des items vide ou de items illégaux.  



Type d'exception



Routine par Défaut des erreurs d'exception pour TRegExpr:

ERegExpr
= class (Exception)
public
ErrorCode : integer; // code d'erreur. Les erreurs de compilation du code sont avant 1000.
CompilerErrorPos : integer;
// Position dans l'e.r. où l'erreur est survenue.
end;


Comment utiliser les Unicode


TRegExpr supporte maintenant les UniCode, mais il travaille
très lentement
.
Qui veut se risquer à l'optimiser ?
L'utiliser seulement si vous avez vraiment besoin du support des Unicode !
Pour utiliser les WideString, enlever le '.' dans {.$DEFINE UniCode} dans le fichier regexpr.pas.



© 2004 Andrey V. Sorokin, Saint Petersburg, Russia
anso@mail.ru
RegExpStudio.com

Help&Manual - the best help authoring tool!