2012-06-28 11 views
7

Ich sah einen regulären Ausdruck, um eine URL zu entsprechen: /^\/users?(?:\/(\d+)(?:\.\.(\d+))?)?/. Ich bin verwirrt durch die Verwendung von ?: am Anfang jedes Gruppenspiels.Was bedeutet `?:` In regulärem Ausdruck

Was bedeutet das?

+0

Welche Regex-Bibliothek verwenden Sie? – svick

+1

svick: Ist das wirklich wichtig? Offensichtlich ein Perl-kompatibler. (Diese Syntax wurde in Perl 5 eingeführt.) – tripleee

+0

@svick: Es ist eine sehr weit verbreitete Erweiterung der POSIX-Spezifikation. –

Antwort

1

Lesen durch: http://docs.python.org/library/re.html

(? ...)

Eine Nicht-Erfassung Version von regulären Klammern. Entspricht dem regulären Ausdruck, der in den Klammern enthalten ist. Der von der Gruppe übereinstimmende Teilstring kann jedoch nicht abgerufen werden, nachdem eine Übereinstimmung gefunden oder später im Muster referenziert wurde.