2012-05-02 19 views
27

Używam request.path do zwracania bieżącego adresu URL w Django, który zwraca /get/category.Usuń początkowy i końcowy ukośnik/

Potrzebuję go jako get/category (bez wiodącego i końcowego ukośnika).

Jak mogę to zrobić?

+4

Dlaczego nie chcesz wiodącą ukośnik? –

Odpowiedz

82

strip() to właściwy sposób na zrobienie tego.

+5

strip() zajmie się również wieloma "/" ' –

+29

Uwaga również istnienie 'lstrip()' i 'rstrip()', na wypadek gdybyś chciał np. usuwaj ukośne ukośniki, ale zachowaj te wiodące. –

+1

Właściwie, myślę, że powinieneś użyć 'strip (os.sep)' –

6
def remove_lead_and_trail_slash(s): 
    if s.startswith('/'): 
     s = s[1:] 
    if s.endswith('/'): 
     s = s[:-1] 
    return s 

Rozłącz str.strip(), jest zagwarantowane, aby usunąć co najwyżej jeden z kreskami ukośnymi po każdej stronie.

5

Innym jednym z wyrażeń regularnych:

>>> import re 
>>> s = "/get/category" 
>>> re.sub("^/|/$", "", s) 
'get/category'