我有以下网址:
http://data.test.com/api/v1/entity/1231
我需要获取v1/
之后和/
之前(斜杠之间)的文本,在本例中为entity
。我正在使用以下正则表达式,但我得到的是第1组entity/1231
:
/^[^\#\?]+\/v1\/([^\?]+).*$/
有关如何摆脱1231
或entity
之后发生的任何事情的想法吗?
答案 0 :(得分:2)
试试这个:
^[^\#\?]+\/v1\/([^\?]+).*(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/1231)$
答案 1 :(得分:2)
您可以使用new RegExp("/v1/([^/]+)"
var str = "http://data.test.com/api/v1/entity/1231";
var res = str.match(new RegExp("/v1/([^/]+)"));
if (res)
console.log(res[1]);
/v1/([^/]+)
匹配:
/v1/
- 文字字符串/v1/
([^/]+)
- 捕获与/
以外的一个或多个字符匹配的第1组。由于RegExp定义中的构造函数表示法,因此无需在正则表达式模式中转义正斜杠。