删除前导和尾随斜杠/

sum*_*mit 56 python django path strip

request.path 用来返回Django中的当前URL,它正在返回 /get/category.

我需要它get/category(没有前导和尾随斜线).

我怎样才能做到这一点?

Amb*_*ber 145

>>> "/get/category".strip("/")
'get/category'
Run Code Online (Sandbox Code Playgroud)

strip() 是这样做的正确方法.

  • 还要注意`lstrip()`和`rstrip()`的存在,以防你想要删除尾部斜杠但保留前导斜杠. (60认同)
  • 对于文件系统路径,`os.path.normpath(*path*)`将删除尾部斜杠. (6认同)
  • strip()也会处理多个"/" (5认同)
  • 实际上,我认为你应该使用`strip(os.sep)` (4认同)
  • @EdwardFalk,如果服务器是Windows,那将会中断。这里的上下文是 URL。 (2认同)

Ray*_*ger 10

def remove_lead_and_trail_slash(s):
    if s.startswith('/'):
        s = s[1:]
    if s.endswith('/'):
        s = s[:-1]
    return s
Run Code Online (Sandbox Code Playgroud)

取消链接str.strip(),保证每侧最多删除一个斜杠.


Tim*_*ker 7

另一个有正则表达式:

>>> import re
>>> s = "/get/category"
>>> re.sub("^/|/$", "", s)
'get/category'
Run Code Online (Sandbox Code Playgroud)