Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :


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.

       Version PDF (Miroir)   Version hors-ligne (Miroir)
Viadeo Twitter Facebook Share on Google+        



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 :

Fiche simple pour tester une regexpr
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 :
^[a-zA-Z_][a-zA-Z_0-9]*$
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.



               Version PDF (Miroir)   Version hors-ligne (Miroir)
Tutoriels
Les génériques avec Delphi 2009 Win32 (English version) - également disponible en espagnol et en russe
Réaliser un plug-in comportant un composant
Construire une procédure pointant sur une méthode
Création de composants - en 4 parties
Refactoring avec Delphi 2007
Prise en main de Delphi 2005
Analyseurs syntaxiques - Leur fonctionnement par l'exemple
Créer un fichier d'aide HLP
Pourquoi un paramètre const change-t-il mystérieusement de valeur ?
Sources
SJRDUnits - Routines et classes diverses
SJRDComps - Quelques composants
Projet Sepi
Présentation
FAQ Sepi
Programmes
FunLabyrinthe - Jeu de labyrinthe très spécial et très fun
TrickTakingGame - Jeux de cartes à plis en ligne
MultiAgenda - Agenda multi-répertoires
DecodeFormulaires - Décode les formulaires
Excel --> HTML - Convertisseur de tableaux Excel en HTML
AddressLinks - Lie les adresses Internet et e-mail d'un document HTML
Vipion - Tic Tac Toe sur 4x4 cases avec jeu de l'ordinateur
BigCalc - Calculatrice de haut niveau
Espace paroissial Astérion de Watermael-Boitsfort

Valid XHTML 1.0 TransitionalValid CSS!

Copyright © 2010 Sébastien Doeraene. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -