Ich bin auf einen regulären Ausdruck gestoßen, den ich nicht ganz verstehe - kann jemand mir helfen, ihn zu entziffern:
%Vor%Es wird in der URL-Übereinstimmung verwendet und das obige Beispiel entspricht den folgenden URLs:
%Vor% Es scheint mir, dass die Fragezeichen in den Klammern (?:
nichts bewirken. Kann mich jemand aufklären?
Die Version von regex, die verwendet wird, ist diejenige, die mit Classic ASP geliefert wird und auf dem Server ausgeführt wird, wenn das überhaupt hilft.
(?:)
erstellt eine nicht erfassende Gruppe . Es gruppiert Dinge zusammen, ohne eine Rückreferenz zu erstellen.
Eine Rückreferenz ist ein Teil, auf den Sie im Ausdruck verweisen können, oder eine mögliche Ersetzung (normalerweise mit oder
usw. - je nach Geschmack). Sie können sie normalerweise auch später aus einer Übereinstimmung extrahieren, wenn Sie regex in einer Programmiersprache verwenden. Der einzige Grund für die Verwendung von
(?:)
besteht darin, das Erstellen einer neuen Rückreferenz zu vermeiden, die das Erhöhen der Gruppennummer vermeidet und (eine normalerweise vernachlässigbare Menge an Speicher) speichert (
Es ist eine Nicht-Capture-Gruppe, die im Wesentlichen die gleiche ist wie die Verwendung von (...)
, aber der Inhalt wird nicht beibehalten (nicht als Rückverweis verfügbar).
Wenn Sie so etwas tun: (abc)(?:123)(def)
Sie erhalten abc
in und
def
in , aber
123
wird nur gefunden.
Tags und Links regex asp-classic