regEx соответствует параметрам конфигурации URL

1

Мне нужно regEx для определения пользовательских параметров.

Поэтому, если у меня есть путь к настройке URL:

'/myapp/users/:userId'

он будет соответствовать [': userId']

или же

'/myapp/user/:username/profile/:profileId'

Мне нужно вернуть [': username', ': profileId']

До сих пор я: (. *)/? но он выбирает все после начального найденного параметра

http://www.regextester.com/?fam=97974

Я слаб на reg ex, может ли кто-нибудь помочь, пожалуйста?

  • 0
    :([^\/]+)
Теги:

2 ответа

3
Лучший ответ

The :(.*)/? шаблон соответствует первому : затем с жадностью захватывает всю строку .* и не нужно ничего делать, кроме как вернуть совпадение с /? соответствует пустой строке (/? соответствует 1 или 0 / символам).

Вы можете использовать класс отрицательных символов [^\/]+:

:([^\/]+)

Детали:

  • : - двоеточие
  • ([^\/]+) - 1+ символы, отличные от /

См. Демо-версию regex.

  • 1
    Огромное спасибо за быстрый ответ!
1

Попробуйте этот шаблон /:(.*?)($|\/)/g

демонстрация

  1. Альтернативный $ утверждает позицию в конце строки
  2. Альтернатива \/ соответствует символу
  3. .*? соответствует любому символу (кроме терминаторов строк)
  • 0
    Спасибо за ответ и отличное объяснение

Ещё вопросы

Сообщество Overcoder
Наверх
Меню