Expressions régulières avec Delphi XE
Date de publication : 13 septembre 2010
Par
Sébastien Doeraene (sjrd.developpez.com)
Delphi XE est sorti ! Parmi les nouveautés dans la RTL de cette version, on trouve le traitement, enfin intégré, des expressions
régulières. Cet article vous propose de les découvrir.
I. Introduction
II. Premier exemple très simple
I. Introduction
Les expressions régulières sont un concept bien connu depuis de longues années pour le traitement des chaînes de caractères.
Beaucoup de tests récurrents, comme le format valide d'une adresse e-mail ou d'un numéro de téléphone, peuvent être vérifiés très
aisément avec les expressions régulières.
De nombreux langages proposent depuis longtemps des routines de gestion des expressions régulières dans leur bibliothèque standard,
voire dans le langage lui-même. On citera par exemple Perl, exemple phare, ou PHP.
Jusqu'ici, les Delphistes devaient utiliser des bibliothèques tierces, excellentes au demeurant. À présent, on peut enfin trouver
son bonheur dans la RTL, directement.
Cet article vous expliquera comment vous servir de cette nouvelle API.
II. Premier exemple très simple
Commençons avec un petit exemple très simple, qui représente par ailleurs bien les 80 % de cas d'utilisation des expressions
régulières : tester si une chaîne correspond à une regexpr.
Posons deux edits et un bouton sur une fiche, comme ceci :
Et voici le code de l'événement OnClick du bouton :
procedure TFormTestRegExpr.ButtonTestRegExprClick(Sender: TObject);
var
RegExpr: TRegEx;
begin
RegExpr := TRegEx.Create(EditRegExpr.Text);
if RegExpr.IsMatch(EditText.Text) then
ShowMessage(' Le texte correspond à l ' ' expression régulière ' )
else
ShowMessage(' Le texte ne correspond PAS à l ' ' expression régulière ' );
end ;
|
En n'oubliant pas, au passage, d'ajouter l'unité RegularExpressions aux uses de l'unité en cours.
Ce code est très simple. Il crée un record de type TRegEx qui représente l'expression régulière. TRegExpr est un type
record avancé, qui englobe toutes les méthodes que l'on peut appliquer à une regexpr.
La méthode IsMatch de TRegEx teste simplement si un texte quelconque correspond à l'expression régulière représentée.
Ce petit programme, aussi simple soit-il, est déjà bien intéressant. Il permet de tester facilement une expression régulière en
développement. Lancez-le, et introduisez l'expression régulière suivante :
Si vous n'avez encore jamais utilisé d'expression régulière, ce "code" peut vous paraître bien cryptique. Nous allons bientôt
remédier à cela. En attendant, sachez simplement que cette regexpr teste si une chaîne est un identificateur Delphi valide. À
savoir, une chaîne qui commence par une lettre non accentuée ou un underscore, suivi d'un nombre quelconques de lettres, chiffres
et/ou underscores.
Introduisez quelques valeurs dans le memo Texte, et cliquez sur le bouton pour tester.
Warning: include(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in /home/developpez/www/developpez-com/upload/sjrd/delphi/tutoriel/expressions-regulieres-avec-delphi-xe/index.php on line 146
Warning: include(http://sjrd.developpez.com/references.inc): failed to open stream: no suitable wrapper could be found in /home/developpez/www/developpez-com/upload/sjrd/delphi/tutoriel/expressions-regulieres-avec-delphi-xe/index.php on line 146
Warning: include(): Failed opening 'http://sjrd.developpez.com/references.inc' for inclusion (include_path='.:/opt/php56/lib/php') in /home/developpez/www/developpez-com/upload/sjrd/delphi/tutoriel/expressions-regulieres-avec-delphi-xe/index.php on line 146
Copyright © 2010 Sébastien Doeraene.
Aucune reproduction, même partielle, ne peut être faite
de ce site ni de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à
trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.