FLRE - Fast Light Regular Expressions

Présentation
FLRE (Fast Light Regular Expressions) est une bibliothèque pour l'utilisation des expressions régulières, écrite en Pascal. Ses atouts sont, outre son étonnante rapidité, le fait qu'elle soit compatible aussi bien avec Delphi (ancienne et nouvelle génération) qu'avec Free Pascal.

La bibliothèque tient dans deux unités, [b]FLRE.pas[/b] et [b]FLREUnicode.pas[/b]. Elle peut également être compilée en bibliothèque dynamique, auquel cas on peut s'en servir dans un programme écrit dans un autre langage que le Pascal.

FLRE supporte à la fois les styles Perl et POSIX.
Téléchargement
Compatibilité
Windows
2  0 
Téléchargé 20 fois Voir les 3 commentaires
Détails
Catégories : Free Pascal
Éditeur : Benjamin Rosseaux   +
Licence : GPL
Date de mise en ligne : 25 septembre 2015




Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 26/09/2015 à 9:06
Bonjour !

Je vous propose une collection de petits exemples pour démarrer avec la bibliothèque FLRE. Certains exemples sont de BeRo1985, d'autres de jurassic pork, d'autres de votre serviteur.

Les exemples ont été testés avec Delphi XE2 et Lazarus 1.4.2.
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 28/11/2015 à 9:29
Bonjour !

Un bug a été corrigé dans la bibliothèque FLRE. Une violation d'accès se produisait lorsqu'on remplaçait un motif par une chaîne vide :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program testreplace;
 
uses
  Classes, SysUtils, FLRE, FLREUnicode;
 
begin
  with TFLRE.Create('\d', []) do
  begin
    MaximalDFAStates := 65536;
    WriteLn(Replace('a1b23c456d', ''));
    Free;
  end;
  ReadLn;
end.
Avatar de mtournay mtournay - Membre habitué https://www.developpez.com
le 29/06/2018 à 16:43
Bonjour

j'essaye d'utiliser

Code pascal : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
program match1;
{$I DIRECTIVES}
 
uses
  SysUtils,
  Classes,
  FLRE in '..\src\FLRE.pas';
 
var
  e: TFLRE;
  c: TFLRECaptures;
  s: TFLRERawByteString;
 
begin
  s := 'Abc1234';
 
  e := TFLRE.Create('^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$', []);
  try
    WriteLn(e.Match(s, c));
    WriteLn(Copy(s, c[0].Start, c[0].Length));
  finally
    e.Free;
  end;
  ReadLn;
end.

il s'agit d'une modification de l'exemple match1 avec une expression pour vérifier les mot de passe stack overflow

malheureusement la réponse est 'FALSE' ! je fais quelque chose de mal, j'ai raté qq chose ?

L'unité regexpr de lazarus plante carrément sur cette regex !

Si vous avez un indice je suis preneur !

 
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsables bénévoles de la rubrique Pascal : Gilles Vasseur - Alcatîz -