AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi XE: Problem mit TRegex und named Groups (Bug?)
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von luke2 · begonnen am 30. Nov 2010 · letzter Beitrag vom 1. Dez 2010
Antwort Antwort
luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#1

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

  Alt 30. Nov 2010, 22:18
Delphi-Version: XE
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 -.-
  Mit Zitat antworten Zitat
luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#2

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

  Alt 30. Nov 2010, 23:24
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

Geändert von luke2 (30. Nov 2010 um 23:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 30. Nov 2010, 23:38
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
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

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

  Alt 1. Dez 2010, 00:53
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
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#5

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

  Alt 1. Dez 2010, 17:24
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 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