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?