使用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'
}

我尝试使用以下regexp从路径模板中获取令牌:

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

用它,我几乎有我需要的。例如,对于模板路径/path/{val1}/rr/test1({val2}),我有以下令牌:

path
{var1}
rr
test1
{val2}

但是我想要:

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

我想我错过了什么,但我不知道是什么

像这样:

//?[^{/]*/?|{[^}]*}/g

最新更新