2015-05-28 35 views
0

我嘗試使用帶JavaScript的regexp標記路徑來提取路徑變量。使用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