![]() |
Delphi-Version: XE
XE: Problem mit TRegex und named Groups (Bug?)
Hallo,
Kann mir jemand sagen, warum folgender Testcode:
Delphi-Quellcode:
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?
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; Ich kann mir das nicht erklären, könnte nur mal wieder ein Bug sein -.- |
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: |
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)
![]() |
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
|
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 04:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz