Мне нужно regEx для определения пользовательских параметров.
Поэтому, если у меня есть путь к настройке URL:
'/myapp/users/:userId'
он будет соответствовать [': userId']
или же
'/myapp/user/:username/profile/:profileId'
Мне нужно вернуть [': username', ': profileId']
До сих пор я: (. *)/? но он выбирает все после начального найденного параметра
http://www.regextester.com/?fam=97974
Я слаб на reg ex, может ли кто-нибудь помочь, пожалуйста?
The :(.*)/?
шаблон соответствует первому :
затем с жадностью захватывает всю строку .*
и не нужно ничего делать, кроме как вернуть совпадение с /?
соответствует пустой строке (/?
соответствует 1 или 0 /
символам).
Вы можете использовать класс отрицательных символов [^\/]+
:
:([^\/]+)
Детали:
:
- двоеточие([^\/]+)
- 1+ символы, отличные от /
См. Демо-версию regex.
Попробуйте этот шаблон /:(.*?)($|\/)/g
$
утверждает позицию в конце строки\/
соответствует символу.*?
соответствует любому символу (кроме терминаторов строк)
:([^\/]+)