在express中,我们可以使用一些路径定义一些端点:
app.get('/:foo*', function(req, res) { ... });
app.get('/:foo(.*)', function(req, res) { ... });
两条路径非常相似,它们之间有什么区别?
最佳答案 *匹配前面标记中的零个或多个
给定字符串/:foo / apple / banana /:foo /:1234
/:foo* matches: /:foo/apple/banana/:foo/:1234
^^^^^ ^^^^^
(.*)是一个捕获组,它将匹配前面所有0个或多个字符.有问题的角色是外卡,这意味着当我们看到/:foo时,我们会继续匹配,直到我们到达字符串的末尾
给定字符串/ hello / world /:foo / bar?id = 123
/:foo(.*) matches /hello/world/:foo/bar?id=123
^^^^^^^^^^^^^^^^