以下Regex评估的内容是什么

时间:2013-08-11 07:17:00

标签: javascript regex

我们如何解释以下正则表达式?

/^\/products\/(?:([^\/]+?))(?:\/([^\/]+?))?\/?$/i,

我理解它可以评估像

这样的东西

/products/ (optional parameters)

注意:我正在用Javascript编程。节点框架要准确。

1 个答案:

答案 0 :(得分:1)

/^\/products\/(?:([^\/]+?))(?:\/([^\/]+?))?\/?$/i,

第一个/是正则表达式分隔符。 ^指的是字符串/products/

的开头

(?:不要捕获群组

([^\/]+?)捕获到\ 1,除\/之外的任何字符串。由于最后尾随?,因此最少选择此字符串。 ')`结束非捕获组。

(?:另一个不捕获组开始,它组但由于转义字符/而未捕获\/

([^\/]+?)捕获到\ 2,除\/之外的任何字符串。由于最后尾随?,因此最少选择此字符串。 ')`结束非捕获组。

不确定?末尾的(?:([^\/]+?))(?:\/([^\/]+?))是否有任何区别。

\/?寻找optinal /

$在可选的\ n之前,以及字符串的结尾

/i使regexp忽略大小写,因此它会在开头匹配/products/,`/ PROducts'等。