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?
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?
(?:)
(()
należą ekspresji) jest dla przechwytywania grupa.
Właśnie miałem zadać to pytanie i znalazłem ten post w sugestii. Wspaniały.. – Samiron
Jest to grupa niezapisująca, więc jeśli zostanie wykonana zgoda, ta grupa nie zostanie przechwycona.
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.
Jakiej biblioteki regex używasz? – svick
svick: Czy to naprawdę ma znaczenie? Najwyraźniej zgodny z Perlem. (Ta składnia została wprowadzona w Perlu 5.) – tripleee
@svick: Jest to bardzo szeroko przyjęte rozszerzenie specyfikacji POSIX. –