Einzelnen Beitrag anzeigen

Andreas2k

Registriert seit: 2. Jan 2003
108 Beiträge
 
Delphi XE5 Professional
 
#1

Verständnissfrage: Reguläre Ausdrücke

  Alt 1. Feb 2012, 16:40
Hallo,
Reguläre Ausdrücke bereiten mir immer noch Probleme beim Verständnis.

Beispiel Rückwärtsreferenzen

Ich habe folgenden Quellstring

<h1 class="test" id="29">

Möchte ich jetzt nur die Zahl von id haben, habe ich durch Zufall herausgefunden das es hiermit geht

(['"]?)(\d+)\1(\d+)\1

(zum Testen habe ich RexExp Studio genommen)

mit (['"]?)(\d+)\1(\d+)\1 findet er exakt 29 (ohne ")
markiert wird <h1 class="test" id="29">

wie gesagt ich habe das nur durch Zufall herausgefunden der Original Ausdruck sah so aus
(['"]?)(\d+)\1
und hat folgendes markiert ("29" Zahl samt Anführungszeichen)
<h1 class="test" id="29">

Ich würde gern verstehen warum mein Zufallstreffer funktioniert und nur die Zahl (ohne Anführungszeichen) markiert.

Soweit ich verstanden habe steht \1 für den Fund aus der ersten Gruppe also demnach "
(['"]?)(\d+)\1 würde also für "29" stehen

Warum bewirkt jetzt aber dieser Teil (['"]?)(\d+)\1(\d+)\1 das nur die Zahl in der Mitte markiert wird? Oder ist das ein Bug?
Andreas

Geändert von Andreas2k ( 1. Feb 2012 um 16:43 Uhr)
  Mit Zitat antworten Zitat