Справка по регулярным выражениям: сопоставление путей (с использованием django) - PullRequest
0 голосов
/ 02 ноября 2009

Ненавижу придумывать названия. Мне нужно что-то, что на самом деле захватит следующее:

site.com / 500 / (число в качестве первого параметра)

site.com / 500 / ABC / (3-х значный код)

site.com / 500 / ABC / DEF / (число и 2x трехбуквенные коды)

С чем я связывался:

^(\d+/)?(\w{3}/)?(\w{3}/)?$

Такого рода работы, но с косыми чертами в аргументах (поэтому я получаю "500 /"). Перемещение косых черт вне скобок не будет соответствовать / 500 / ABC /, так как? работает только на слеш.

Очевидно, что я могу сделать это несколькими, но я уверен, что есть способ сделать это за один раз.

Кроме того, мне нужны только реальные аргументы, поскольку, как я уже сказал, они могут работать, но заканчивают тем, что добавляют к ним косые черты, что не слишком хорошо.

Спасибо за любую помощь.

1 Ответ

1 голос
/ 02 ноября 2009

как насчет ..

((\d+/)|(\d+/\w{3}/)|(\d+/\w{3}/\w{3}/))$

результат будет ..

site.com/500/ABC/DEF/ => 500/ABC/DEF/
site.com/500/ABC/ => 500/ABC/
site.com/500/ = 500/
...