Python RegEx: Как условно сопоставить несколько необязательных завершающих символов в URL-адресе
Мне нужно сопоставить URL в моей функции Django re_path.
Ниже приведены структуры, которые необходимо сопоставить:
- Any URL must start with either /profile or /user/profile
- Any URL must end with either profile , or profile/ or profile/blabla
Ниже приведены примеры разрешенных URL-адресов:
- /профиль
- /профиль/
- /профиль/asd
- /профиль/asd/
- /user/profile
- /user/profile/
- /user/profile/asd
- /user/profile/asd/
Я пробовал следующее, но не получается:
re_path(r'^profile/?.*$', views.my_view)
Любая помощь приветствуется, спасибо!
Вы можете использовать
^/(?:user/)?profile(?:/(?:[^/]+/?)?)?$
См. regex demo. Детали:
^- начало строки/- символ/(?:user/)?- необязательнаяuser/строкаprofile- фиксированная строка(?:/(?:[^/]+/?)?)?- необязательная последовательность из/- символ/char(?:[^/]+/?)?- необязательная последовательность из одного или нескольких символов, отличных от/, а затем необязательный/символ .
$- конец строки.