Regex - mon premier essai bien laborieux
Bonjour
N'ayant pas trouvé beaucoup de doc pour lazarus concernant les expressions régulières, je me suis hasardé à faire un petit essai que voici :
J'ai utilisé l'unité RegexPr
Il semble fonctionner correctement :
Code:
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, regexpr;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit2: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegExprEngine;
index, len, i: integer;
begin
reg := GenerateRegExprEngine(PChar(Edit2.Text), [ref_singleline]);
if (RegExprPos(reg, PChar(memo1.Text), index, len)) then
begin
ShowMessage('oui le regex est bon');
end
else
begin
ShowMessage('non le regex n''est pas bon');
end;
DestroyRegExprEngine(reg);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Text := 'Coucou';
edit2.Text := '^c';
end;
initialization
{$I unit1.lrs}
end. |
C'est vraiment comme ceci que vous feriez ?
Ou puis-je trouver de la doc supplementaire ?
J'ai vu qu'il y avait un composant Regex au lieu de RegexPR que j'utilise ici, y a t-il un ++ a utiliser l'un plutôt que l'autre ?