2016-05-09 3 views
1

У меня проблема с удалением параметров из url, начиная с ":". У меня есть пример путь, как:Удаление параметров url с использованием regex

/foo/:some_id/bar/:id 

Я хотел бы архивировать следующий результат:

/foo/bar 

Я пытался создать какое-то регулярное выражение. Я понял это:

\/:.*?\/ 

Но этот удаляет: some_id, но все же Он оставляет: id часть. Можете ли вы рассказать мне, как я могу изменить свое регулярное выражение, чтобы удалить все параметры?

+1

разделение на '/'. перебирать элементы. если он не начинается с ':', добавьте его. – Sharky

+0

Это должно помочь вам: https://regex101.com/r/tG0oG0/1 – Ambrish

ответ

1

Вашему регулярному выражению необходимо указать номер /. Вы не можете просто удалить / из регулярного выражения, так как .*? ничего не будет соответствовать. Используйте negated character class:

\/:[^\/]+ 

См детализирует regex demo

Pattern:

  • \/: - буквальному /:
  • [^\/]+ - матчи 1+, кроме / как [^...] Определяет символы совпадение символа отрицательного символа все символы, кроме тех, которые определены в классе.
+1

Спасибо за решение и объяснение;) – dewastator

Смежные вопросы