Huu*_*uze 2 regex django django-urls
我可以使用一些帮助来编写正则表达式.在我的Django应用程序中,用户可以点击以下URL:
http://www.example.com/A1/B2/C3
Run Code Online (Sandbox Code Playgroud)
我想创建一个允许接受以下任何一个有效URL的正则表达式:
http://www.example.com/A1
http://www.example.com/A1/B2
http://www.example.com/A1/B2/C3
Run Code Online (Sandbox Code Playgroud)
我猜我需要使用"OR"条件,但是我无法让我的正则表达式进行验证.有什么想法吗?
更新:到目前为止这是正则表达式.请注意,我没有包含" http://www.example.com "部分 - Django为我处理.我只关心验证1,2或3个子目录.
^(\w{1,20})|((\w{1,20})/(\w{1,20}))|((\w{1,20})/(\w{1,20})/(\w{1,20}))$
Run Code Online (Sandbox Code Playgroud)
跳过|,使用?和()
http://www\.example\.com/A1(/B2(/C3)?)?
如果你用一个模式替换A1-C3:
http://www\.example\.com/[^/]*(/[^/]*(/[^/]*)?)?
说明:
http://www.example.com/A1/B2,甚至是额外的/C3,但/C3只有匹配,当有一个/B2[^/]* (尽可能多的非斜线)http://www\.example\.com/([^/]*)(/([^/]*)(/([^/]*))?)?
将给(groupnumber: content):
matches: 0: (http://www.example.com/dir1/dir2/dir3)
1: (dir1)
2: (/dir2/dir3)
3: (dir2)
4: (/dir3)
5: (dir3)
Run Code Online (Sandbox Code Playgroud)
你可以在这里在线查看或获得这个工具(是的它是免费的,它甚至用Lisp写的......).