Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi XE: Problem mit TRegex und named Groups (Bug?) (https://www.delphipraxis.net/156400-xe-problem-mit-tregex-und-named-groups-bug.html)

luke2 30. Nov 2010 21:18

Delphi-Version: XE

XE: Problem mit TRegex und named Groups (Bug?)
 
Hallo,

Kann mir jemand sagen, warum folgender Testcode:
Delphi-Quellcode:
var mc:tmatchcollection; m:tmatch;
begin
  mc:=tregex.Matches(memo1.Text,'<h1 id="post-(?<test>\d+)"><a href="(?<url>.+?)" rel="bookmark" title="Permanent Link to .+?">(?<name>.+?)</a></h1>',[roignorecase]);
  for m in mc do
    listbox1.Items.Add(m.Groups['test'].value); //funktioniert
    //listbox1.Items.Add(m.Groups['url'].value); //funktioniert
    //listbox1.Items.Add(m.Groups['name'].value); << "Index out of Bounds (-7)"
end;
beim Zugriff auf m.Groups['test'] und m.Groups['url'] funktioniert, aber beim Zugriff auf m.Groups['name'] den Fehler "Index out of Bounds (-7)" wirft?

Ich kann mir das nicht erklären, könnte nur mal wieder ein Bug sein -.-

luke2 30. Nov 2010 22:24

AW: XE: Problem mit TRegex und named Groups (Bug?)
 
Ich habe nun noch folgendes herausgefunden:
Mit m.Groups[1], m.Groups[2] usw. funktioniert es problemlos.
Es liegt an den named Groups und es scheint so, als wenn die letzte Gruppe immer abgeschnitten wird.
Ein möglicher Workaround wäre also eine 4. temporäre Gruppe anzulegen, die nicht benutzt wird, damit man auf die 3. Gruppe zugreifen kann.

Ist alles andere als schön, aber geht wohl nicht anders. Also doch wieder ein Bug :|


...oder auch nicht, wenn man das macht, funktionieren andere Gruppen nicht mehr, es scheint alles völlig verbuggt zu sein :evil:

himitsu 30. Nov 2010 22:38

AW: XE: Problem mit TRegex und named Groups (Bug?)
 
Du könntest ja mal das Original nutzen. (k.A. ob/wo das schonmal wer auf D2009+ portiert hat)
http://www.regular-expressions.info/delphi.html

s.h.a.r.k 30. Nov 2010 23:53

AW: XE: Problem mit TRegex und named Groups (Bug?)
 
Hilft zwar nicht direkt, aber ich hab das schon mal unter D2010 getestet und bei mir hat die Lib wunderbar funktioniert. Aber mit Gruppen hatte ich noch nichts am Hut, zumindest nicht unter Delphi

luke2 1. Dez 2010 16:24

AW: XE: Problem mit TRegex und named Groups (Bug?)
 
Ja, es funktioniert auch soweit ich weiss alles ganz gut, auch Zugriff auf Gruppen mit numerischem Index, nur benannte Gruppen machen Probleme.
Muss ich wohl doch wieder auf eine externe Lib zurückgreifen, bis Emba das mal gefixt hat.

Danke jedenfalls für die Antworten, für mich ist das Thema dann erledigt, es sei denn jemand hat noch eine Idee.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz