我正在寻找一种捕获这些URL的方法:
...但不是这些:
到目前为止,我得到的是这段代码-但显然,我也在捕获不想从上面获取的网址:
var express = require('express');
let app = express();
app.get(/\/subsite(?:\.html)?$/, function(req, res) {
})
我试图通过在正则表达式之前插入 com 来修复代码,但这似乎不是可行的解决方案:/.*com\/subsite(?:\.html)?$/
。
如何解决这个问题?
答案 0 :(得分:1)
这对我有用。
app.get(/.*com\/subsite(?:\.html)?$/, function(req, res) {
})
我在这里进行测试:https://regex101.com/r/42lhKg/1
答案 1 :(得分:0)
您不需要使用Reg Ex对象,它将可以正常工作:
app.get("/subsite(.html)?", function(req, res) {
/*...*/
})
匹配任何以“ subsite”开头并且可能为.html的路径
答案 2 :(得分:0)
您的正则表达式缺少使子网站仅出现在乞求的^
中的约束:
/^\/subsite(?:\.html)?$/
witch与仅使用字符串相同:
"/subsite(.html)?"
我在另一个答案中提到的。
别忘了在表达中,您只关心URL的路径和查询部分。