Moinmoin,
Ich möchte einen String, der eine Hexzahl repräsentiert, in seine Bytes zerlegen.
Der Ausdruck, den ich soweit zusammengefriggelt habe ist
Code:
^([\$])?([a-f,A-F,0-9]{2}){1,8}$
"The Regulator" (Testprogramm für reguläre Ausdrücke) zeigt mir auch wunderbar die einzelnen Element an.
Das ganze mit Delphi:
Delphi-Quellcode:
var
reg : TRegEx;
erg : TMatchCollection;
mm,it : TMatch;
gr : TGroup;
g,m,id : integer;
begin
reg := TRegEx.Create('^([\$])?([a-f,A-F,0-9]{2}){1,8}$');
erg := Reg.Matches('$aabbcc');
mlog.Lines.Clear;
if (erg.Count > 0) then
begin
for m := 0 to erg.Count -1 do
begin
mlog.Lines.Append('Match ('+IntToStr(m)+')');
mm := erg.Item[m];
if (mm.Groups.Count > 0) then
begin
for g := 0 to mm.Groups.Count -1 do
begin
gr := mm.Groups.Item[g];
mlog.Lines.Append('Group ('+IntToStr(m)+'/'+IntToStr(g)+'):'+gr.Value);
end;
end;
end;
end;
end;
ergibt aber was gaaaanz anderes:
Code:
Match (0)
Group (0/0):$aabbcc
Group (0/1):$
Group (0/2):
cc
Kann mir da kurz jemand helfen ?