Wieviele Backreferences?

Hallo Allerseits,

leider konnte ich bis jetzt nirgends eine Info finden wieviele Backreferenzen bei Regex erlaubt sind. Hintergrund, ich habe eine Regex mit 9 Backreferenzen. Funktioniert prima. Wenn ich diese jetzt erweitere (ich habe dann 13 Backreferenzen) sieht das Ergebnis ziemlich sonderbar aus. Und bis jetzt kann ich nicht sagen wie genau das Ergebnis jetzt entsteht. Ich habe aber den Verdacht, dass Backreferenzen auf max. 9 begrenzt sind.

Danke im Voraus.

MfG

AL

Hallo AL,

wieviele
Backreferenzen bei Regex erlaubt sind.
Ich habe
aber den Verdacht, dass Backreferenzen auf max. 9 begrenzt
sind.

Ich habe Zweifel, ob sich diese Frage allgemeingültig beantworten lässt. Schliesslich gibt es RegEx in verschiedenen „Geschmacksrichtungen“, z.B. Posix-Standard oder GNU Regular Expression, die auf Posix basieren, aber Erweiterungen enthalten. Gut, beide unterscheiden sich in Bezug auf Backreferenzen soviel ich weiss nicht, aber kann man das für wirklich für alle anderen auch sagen?
Aber sonst, ja, bei Posix Basic Regular Expressions sieht es so aus, wie Du vermutest, dort sind nur 9 Backreferenzen anwendbar:
„Backreferences are the usual \1 through \9. Only up to 9 groups are permitted.“
http://www.regular-expressions.info/posix.html
dito GNU Basic Regular Expressions
http://www.regular-expressions.info/gnu.html
Das legt natürlich die starke Vermutung nahe, daß 9 tatsächlich die obere Grenze ist (wie ich auch denke), aber mit 100%-iger Sicherheit kann ich es dir aus den obigen Gründen auch nicht sagen.

Viele Grüße
Marvin

Hallo Marvin,

danke für die Info. Ich habe mich wohl etwas veräppelt, da ich komplizierte Regex mit Regex Buddy teste. Und bei dieser Software konnte ich dann mehr als 9 nutzen. Ziemlich doof für ein Testprogramm.

MfG

AL

Hallo,

ich denke auch, dass sie (ziemlich unabhängig vom Werkzeug) auf 9 begrenzt sind. Man findet nämlich keinen Hinweis, dass mehrere aufeinanderfolgendeZiffern irgendwie logisch verknüpft werden, was auch richtig knifflig zu definieren wäre. Von daher ist \10 die Backreferenz 1 und eine anschließende 0, was deine komischen Egebnisse vermutlich erklärt.

Grüße, guidot