2
0
FLRE - Fast Light Regular Expressions
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.
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.
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. |
Bonjour
j'essaye d'utiliser
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.Start, c.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 !