我们如何解释以下正则表达式?
/^\/products\/(?:([^\/]+?))(?:\/([^\/]+?))?\/?$/i,
我理解它可以评估类似的东西
/products/ (optional parameters)
注意:我正在用 Javascript 编程。准确地说是节点框架。
我们如何解释以下正则表达式?
/^\/products\/(?:([^\/]+?))(?:\/([^\/]+?))?\/?$/i,
我理解它可以评估类似的东西
/products/ (optional parameters)
注意:我正在用 Javascript 编程。准确地说是节点框架。
在/^\/products\/(?:([^\/]+?))(?:\/([^\/]+?))?\/?$/i,
第一个/是正则表达式分隔符。^指的是字符串的开头/products/
(?:不捕获组
([^\/]+?)捕获到 \1,除 . 之外的任何字符串\/。这个字符串是'最少选择的,因为?最后是尾随。')` 结束非捕获组。
(?:另一个不捕获组开始,它/由于转义字符而分组但不捕获\/。
([^\/]+?)捕获到 \2,除 . 之外的任何字符串\/。这个字符串是'最少选择的,因为?最后是尾随。')` 结束非捕获组。
不确定?结尾有(?:([^\/]+?))(?:\/([^\/]+?))什么不同。
\/?寻找一个可选的/
$ 在可选的 \n 之前和字符串的结尾
/i使正则表达式忽略大小写,因此它会/products/在开头匹配 , `/PROducts' 等。