2015-05-28 2 views
0

Я пытаюсь tokenize путь для извлечения переменных пути с помощью regexp с JavaScript.Токсизировать путь с использованием JavaScript regexp

У меня есть одно выражение, которое дает шаблон пути, позволяющий определять переменные части. Что-то вроде этого: /path/{val1}/rr/{val2}, /path/{val1}/rr/test1{val2} или /path/{val1}/rr/test1({val2}).

Я хотел бы извлечь значения переменных частей путей следующим образом: /path/myval1/rr/myval2, /path/myval1/rr/test1myval2 или /path/myval1/rr/test1(myval2). Для того, чтобы получить что-то вроде этого:

{ 
    var1: 'myvar1', 
    var2: 'myvar2' 
} 

Я пытаюсь использовать следующее регулярное выражение, чтобы получить жетоны из шаблона пути:

(^(\{{1})[\w\/]+(\}{1})$)|([!\{!\}\w]+) 

Используя это, у меня есть почти то, что мне нужно. Например, для шаблона пути /path/{val1}/rr/test1({val2}), у меня есть следующие символы:

path 
{var1} 
rr 
test1 
{val2} 

Но я хотел бы иметь:

/path/ 
{var1} 
/rr/ 
/test1(
{val2} 
) 

Я думаю, что я что-то пропустил, но я не могу выяснить, что.

ответ

0

Что-то вроде этого:

/\/?[^{\/]*\/?|{[^}]*}/g 
Смежные вопросы