Próbuję skonfigurować wyrażenie regularne dla ścieżki /s/<4-6 character string here>
, w której przechwytuję ciąg 4-6 znaków jako 1 $.regex lokalizacji nginx - klasa znaków i zakres dopasowań
Próbowałem stosując następujące dwa wpisy, ale obie nie
location ~ ^/s/([0-9a-zA-Z]){4,6}+$ { ...
location ~ ^/s/([0-9a-zA-Z]{4,6})+$ { ...
Pierwszy z nich pochodzi z „nieznanego dyrektywy”, a drugi pochodzi z „pcre_compile() failed: brak)”
EDIT
następujących trasach będzie serwowana przez tego miejsca:
/s/1234 (and I would capture '1234' in $1)
/s/12345 (and I would capture '12345' in $1)
/s/123456 (and I would capture '123456' in $1)
/s/abcd (and I would capture 'abcd' in $1)
/s/abcde (and I would capture 'abcde' in $1)
/s/abcdef (and I would capture 'abcdef' in $1)
/s/a1b2c (and I would capture 'a1b2c' in $1)
następujące trasy nie będzie serwowana przez tego miejsca:
/s/1
/s/12
/s/123
/s/a
/s/ab
/s/abc
/s/abc1234
/s/12345678
etc ...
Chcę zarówno przechwytywać i ograniczać ciąg znaków do 4-6 znaków. Masz nieograniczoną liczbę znaków po pierwszym 4-6 z ". *" – Dave
@Dave: Twoje zapytanie nie jest jasne. Podaj konkretny przykład adresu URL, który chcesz potraktować. –
Myślę, że moja prośba jest całkiem jasna. Chcę przechwycić "1234" z "/ s/1234" lub "abcde" z "/ s/abcde" i NIE zezwalać na cokolwiek następującego po "/ s /" oprócz 4, 5 lub 6 znaków. Tak więc "/ s/x" lub "/ s/xy" lub "/ s/xyz" lub "/ s/abcdxyz" nie będą obsługiwane przez ten blok lokalizacji. – Dave