Autor Beitrag
ppientje
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 04.06.14 22:22 
Hallo,
Ich kriege es nicht hin um wert1 und wert2 separat aus einen einfachen String zu bekommen.
Bekomme nur ein Ergebnis/Sammlung mit am Anfang wert1 und am Ende wert2.
Wurde gerne zwei Sammlungen zurückbekommen.

ausblenden volle Höhe Delphi-Quelltext
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:
// to test drop a tbutton, tedit and tmemo on form

implementation

{$R *.dfm}

uses
  RegularExpressions;

procedure TForm1.Button1Click(Sender: TObject);
const
  bigstring = 'begin:wert1#ende' +
              'begin:wert2#ende';
  littlestring = 'begin:(.*)(?=#ende)';
var
  regex: TRegEx;
  i, j: integer;
  mygrps: TGroupCollection;
  mycoll: TMatchCollection;
begin
  regex := TRegEx.Create(littlestring);
  mycoll := regex.Matches(bigstring);
  Edit1.Text := 'Count: ' + IntToStr(mycoll.Count);
  Memo1.Lines.Add('First Collection: ');
  for i := 0 to mycoll.Count - 1 do
  begin
    Memo1.Lines.Add('Match #' + IntToStr(i) + ': ' + mycoll.Item[i].Value);
    Memo1.Lines.Add('Group: ' + IntToStr(i));
    mygrps := mycoll.Item[i].Groups;
    for j := 0 to mygrps.Count - 1 do
      Memo1.Lines.Add('Value: ' + mygrps.Item[j].Value);
  end;
end;


Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
BlackMatrix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: Do 05.06.14 16:43 
Nimm

ausblenden Delphi-Quelltext
1:
begin:(.*?)(?=#ende)					


anstatt

ausblenden Delphi-Quelltext
1:
begin:(.*)(?=#ende)					


Generell würde ich dir aber empfehlen bei diesen einfachen strings Stringoperationen ala Split oder SubString zu verwenden (falls es die in Delphi gibt) ;)
ppientje Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 05.06.14 19:26 
Seufz.... Ein Fragezeichen zu wenig!

Vielen dank fuer deine Hilfe und vielleicht ist meine lousung auch etwas uebertrieben. :)