Regex - соответствует всем, кроме косой черты
в следующей строке:
/Сиэттл/ресторан
Я хотел бы сопоставить Сиэтл (если он присутствует) (иногда URL-адрес может быть /seattle/restaurant, а иногда может быть/ресторан). Я не хочу соответствовать следующей косой чертой: seattle/
Я пробовал следующее, но я не могу заставить его работать:
/(.*[^/]?)restaurant(\?.*)?$
Мне нужна первая косая черта, поэтому решение не должно удалять это, что я могу сделать вот так:
(/?)(.*)/restaurant(\?.*)?$
Спасибо
Томас
Ответы
Ответ 1
Как насчет этого?
^/([^/]+)/?(.*)$
Я тестировал его с помощью python и, кажется, работал нормально:
>>> regex=re.compile(r'^/([^/]+)/?(.*)$')
>>> regex.match('/seattle').groups()
('seattle', '')
>>> regex.match('/seattle/restaurant').groups()
('seattle', 'restaurant')