2012-06-28 19 views
7

Widziałem wyrażenie regularne odpowiadające adresowi URL: /^\/users?(?:\/(\d+)(?:\.\.(\d+))?)?/. Jestem zdezorientowany przez użycie ?: na początku każdego dopasowania grupowego.Co oznacza wyrażenie "?:" W wyrażeniu regularnym

Co to oznacza?

+0

Jakiej biblioteki regex używasz? – svick

+1

svick: Czy to naprawdę ma znaczenie? Najwyraźniej zgodny z Perlem. (Ta składnia została wprowadzona w Perlu 5.) – tripleee

+0

@svick: Jest to bardzo szeroko przyjęte rozszerzenie specyfikacji POSIX. –

Odpowiedz

1

przeczytać: http://docs.python.org/library/re.html

(? ...)

Non-przechwytywanie wersja zwykłych nawiasach. Pasuje do dowolnego wyrażenia regularnego w nawiasach, ale podciągu dopasowanego przez grupę nie można odzyskać po wykonaniu dopasowania lub odwołaniu się do niego później.

Powiązane problemy