Bonjour
J'ai essayé d'utiliser l'unité regex proposée ici et je rencontre des problèmes.
Qui utilise des regex avec Lazarus parmi vous ?
Bonjour
J'ai essayé d'utiliser l'unité regex proposée ici et je rencontre des problèmes.
Qui utilise des regex avec Lazarus parmi vous ?
Bonjour,
Si vous souhaitez des réponses, il faudrait poser une question plus précise . Pouvez-vous indiquer les problèmes rencontrés avec des exemples de code qui ne fonctionnent pas ?
Cordialement,
Gilles
Bonjour
En 1er, j'essaye avec l'unité regexpr de laza
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 program Project1; {$mode delphi }{$H+} uses RegExpr; var R:TRegExpr; begin R := TRegExpr.Create; try R.Expression:= '^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$'; writeln(R.Exec('Abcd1234')); finally R.Free; end; end.
A l’exécution j'ai une exception sur un caractère non reconnu position 11. Bizarre, sur le forum US JurassicPork arrive à le faire fonctionner....
Dans un second essai j'essaye avec l'unité de beRo
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
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.
qui retourne FALSE.
Du coup, je viens de me souvenir qu'ici aussi nous avons JurassicPork, c'est le même ???
hello,
il se pourrait bien que ce soit le même
As-tu bien lu tous mes messages du forum en angliche :
Dans le premier message j'explique pourquoi on ne peut pas utiliser la syntaxe (?= avec TRegexpr et FLRE
J'ai utilisé les deux fonctions proposées par Engkin pour faire mes tests. Il utilise une autre syntaxe pour le TRegexpr et il utilise BRRE au lieu de FLRE.
Ami calmant, J.P
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
Bonjour JP
Je crois que je vais utiliser BRRE, mais
- je cherche à savoir pourquoi il plante en mode debug....
BeRo sur la page github de son unité précise 'but please, disable the buggy DFA stuff at BRRE then'
oui mais quoi ???- je dois me mettre d'accord avec la société tiers qui va me fournir les regex sur le format (en gros pour le moment remplacer le ^ de début et le $ de fin par /)
un collégue qui a fait une recherche et moi même avons aussi vu synregex c'est un composant du SynEditor de l'ide ?
@bientôt
Bonjour,
Il me semblais qu'il y avait d'autres solutions pour les expressions régulières. Ca vaut ce que ça vaut, j'ai effectuer une petite recherche et suis retombé la-dessus https://github.com/masterandrey/TRegExpr à l'époque je l'avais utilisé sous Delphi pour un petit soft pour traiter les fichiers Css, JS, php et html le composant devrait être facilement portable pour FPC et Lazarus d'après ce que j'ai vu vite fais du code.
Sinon je suis tombé la dessus aussi : http://www.regexguru.com/2008/08/tpe...r-delphi-2009/. Et il existe également une classe dans la JCL http://wiki.delphi-jedi.org/wiki/JCL_Help:TJclRegEx à voir si elle est incorporée dans la version pour FPC et Lazarus.
- "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
- "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
- "La simplicité est la sophistication suprême" - Léonard De Vinci
- "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei
Mes projets sur Github - Blog - Site DVP
Bonjour Beanz
J'ai jeté un oeil rapide à TPerlRegEx mais cela utilise la library PCRE ; or je dois faire fonctionner les regex dans un terminal winCE avec un minimum de dépendances....
Je viens de faire un test simple j'ai juste converti les projets Delphi de https://github.com/masterandrey/TRegExpr avec les outils de Lazarus ils fonctionnent nickel. J'ai juste retouché la "form" du 1er comme d'habitude avec les projets provenant de Delphi
A tester si il fonctionne avec ton cas.
- "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
- "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
- "La simplicité est la sophistication suprême" - Léonard De Vinci
- "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei
Mes projets sur Github - Blog - Site DVP
@beanz : c'est le même que celui qui est inclus dans la distri FPC non ? il me fait la même erreur en tout cas avec la première expression de validation de password
le problème est en partie résolu, je vais maintenant voir avec le tiers qui doit me fournir les regex depuis un autre soft. Nous allons travailler ensemble pour trouver le meilleur compromis.
Merci à tous les deux !
- "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
- "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
- "La simplicité est la sophistication suprême" - Léonard De Vinci
- "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei
Mes projets sur Github - Blog - Site DVP
Salut
Dans ce cas tu peux peut-être le contacter et ou déposer le problème via son Github. En plus il me semble bien qu'il est français.
- "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
- "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
- "La simplicité est la sophistication suprême" - Léonard De Vinci
- "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei
Mes projets sur Github - Blog - Site DVP
hello,
pour le point 1 en mode debug il suffit de cocher ignorer cette erreur dans la fenêtre d'erreur. BRRE fonctionne quand même.
pour le point 2 tu peux laisser le ^ et le $, il faut alors rajouter un / comme premier et dernier caractère.
J'ai trouvé une autre possibilité de regexp sous windows mais hélas je ne crois pas que cela fonctionnera sous wince car cela utilise l'objet COM Vbscript.regexp. A titre indicatif voilà comment l'utiliser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part R := TBRRERegExp.Create('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/');
1 - Télécharger l'unite VBScriptRegex ( Delphi 7 Wrapper for the Microsoft VBScript 5.5 RegExp Classes ) qui se trouve ici
2 - Voici un exemple de code pour l'utiliser :
Ami calmant, J.P
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // uses VBScriptRegex function Check_VBScriptRegex(const s: String): boolean; var R: IRegEx; begin Result := False; R := Regex.Create('^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$'); if not R.Match(WideString(s)) then exit; Result := True; end;
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager